2015-04-09 1 views
0

мое приложение не готово 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)

+1

Пока не ясно, что вы просите ... –

+0

при доступе к нему из файла не найдена ошибка –

+0

PUT IN нескольких местах shiro.ini, но все еще может не найти. сделал бы вместо shiro.ini положить на стол –

ответ

0

Если ваше приложение ищет путь к классу shiro.ini, то каталог src/main/webapp/web-inf не является правильным путем.

Похоже, вы используете maven, если это так, он должен идти в src/main/resources. В сгенерированном веб-приложение должно закончиться в WEB-INF/классы

+0

ok, спасибо, теперь появилось больше проблемы , следующая ошибка –

+0

Ошибка конфигурации. Указанный объект [authc] с свойством [loginUrl] без предварительного определения этого класса объекта. Сначала сначала укажите свойство класса, например. myObject = full_qualified_class_name, а затем определить дополнительные свойства. –

+0

java.lang.IllegalArgumentException: Ошибка конфигурации. Указанный объект [authc] с свойством [loginUrl] без предварительного определения этого класса объекта. Сначала сначала укажите свойство класса, например. myObject = full_qualified_class_name, а затем определить дополнительные свойства –