мое приложение не готово shiro.ini. Я использую фреймворк VRaptor, просто не этот медленный siro.ini. это на пути к классам и не читает.Привет - Помощь Shiro
public LoginController() {
Factory<SecurityManager> factory = new IniSecurityManagerFactory();
SecurityManager securityManager = factory.getInstance();
SecurityUtils.setSecurityManager(securityManager);
}
public boolean autenticar(String email, String password, Boolean rememberMe) throws NoSuchAlgorithmException, UnsupportedEncodingException {
UsernamePasswordToken token = new UsernamePasswordToken(email, password);
token.setRememberMe(true);
Subject subject = SecurityUtils.getSubject();
try {
subject.login(token);
} catch (UnknownAccountException uae) {
System.out.println(uae.getMessage());
} catch (IncorrectCredentialsException ice) {
System.out.println(ice.getMessage());
} catch (LockedAccountException lae) {
System.out.println(lae.getMessage());
} catch (ExcessiveAttemptsException eae){
System.out.println(eae.getMessage());
}
result.redirectTo(LoginController.class).admin();
return false;
}
SRC/главная/веб-приложение/веб-инф/shiro.ini
Я использую рамки под названием vraptor. Я поставил сиро-зависимости и файл .ini, это ошибка.
GRAVE: Servlet.service() for servlet [default] in context with path [/vraptor-andre] threw exception [net.vidageek.mirror.exception.ReflectionProviderException: Could not invoke method autenticar] with root cause
java.lang.IllegalStateException: Configuration error: No realms have been configured! One or more realms must be present to execute an authentication attempt.
at org.apache.shiro.authc.pam.ModularRealmAuthenticator.assertRealmsConfigured(ModularRealmAuthenticator.java:161)
at org.apache.shiro.authc.pam.ModularRealmAuthenticator.doAuthenticate(ModularRealmAuthenticator.java:264)
at org.apache.shiro.authc.AbstractAuthenticator.authenticate(AbstractAuthenticator.java:198)
at org.apache.shiro.mgt.AuthenticatingSecurityManager.authenticate(AuthenticatingSecurityManager.java:106)
at org.apache.shiro.mgt.DefaultSecurityManager.login(DefaultSecurityManager.java:270)
at org.apache.shiro.subject.support.DelegatingSubject.login(DelegatingSubject.java:256)
at br.com.genius.shiro.controller.LoginController.autenticar(LoginController.java:55)
shiro.ini
[main]
authc.loginUrl = /login
jdbcRealm = br.com.genius.shiro.auth.MyCustomRealm
sha256Matcher = org.apache.shiro.authc.credential.Sha256CredentialsMatcher
sha256Matcher.storedCredentialsHexEncoded = false
sha256Matcher.hashIterations = 1024
jdbcRealm.credentialsMatcher = $sha256Matcher
jdbcRealm.authenticationQuery = SELECT password, salt FROM User WHERE email = ?
jdbcRealm.permissionsLookupEnabled = true
jdbcRealm.userRolesQuery = select roleName from UserRole where email = ?
jdbcRealm.permissionsQuery = select permission from RolesPermission where roleName = ?
ds = com.mysql.jdbc.jdbc2.optional.MysqlDataSource
ds.serverName = x.x.x.x
ds.user = xxxx
ds.password = xxxx
ds.databaseName = data
jdbcRealm.dataSource=$ds
authc.usernameParam = email
authc.passwordParam = password
authc.failureKeyAttribute = shiroLoginFailure
builtInCacheManager = org.apache.shiro.cache.MemoryConstrainedCacheManager
securityManager.cacheManager = $builtInCacheManager
securityManager.realms = $jdbcRealm
[urls]
/login = authc
/logout = logout
/admin/** = user, roles[admin]
/guest/** = user, roles[guest]`
в shiro.ini, когда имеет [AUTH] это как внутренняя ошибка, не признает и без него Эта ошибка появляется
`The server encountered an internal error that prevented it from fulfilling this request.`
javax.enterprise.event.ObserverException
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
java.lang.reflect.Constructor.newInstance(Unknown Source)
java.lang.Class.newInstance(Unknown Source)
com.google.common.util.concurrent.ExecutionError: java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory com.google.common.cache.LocalCache $ Segment.get (LocalCache.java:2197) com.google.common.cache.LocalCache.get (LocalCache.java:3932) com.google.common.cache.LocalCache.getOrLoad (LocalCache.java:3936) com.google.common.cache.LocalCache $ LocalLoadingCache.get (LocalCache.java:4806) org.jboss.weld.util.cache. ЗагрузкаCacheUtils.getCacheValue (LoadingCacheUtils.java:52) org.jboss.weld.util.cache.LoadingCacheUtils.getCastCacheValue (LoadingCacheUtils.java:80) org.jboss.weld.bean.proxy.ClientProxyProvider.getClientProxy (ClientProxyProvider.java: 204) org.jboss.weld.manager.BeanManagerImpl.getReference (BeanManagerImpl.java:727) org.jboss.weld.manager.BeanManagerImpl.getRefe rence (BeanManagerImpl.java:753)
Пока не ясно, что вы просите ... –
при доступе к нему из файла не найдена ошибка –
PUT IN нескольких местах shiro.ini, но все еще может не найти. сделал бы вместо shiro.ini положить на стол –