2017-11-06 20 views
0

初めての方はapache-shiroです。私はCustomRealmを実装しようとしました。しかし、私はエラーが発生しています。JdbcRealm in apache shiro

public class MyCustomRealm extends JDBCRealm { 

private Map<String, String> credentials = new HashMap<>(); 
private Map<String, Set<String>> roles = new HashMap<>(); 
private Map<String, Set<String>> perm = new HashMap<>(); 

{ 
    credentials.put("user", "password"); 
    credentials.put("user2", "password2"); 
    credentials.put("user3", "password3"); 

} 

protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException 
{ 

    UsernamePasswordToken uToken = (UsernamePasswordToken) token; 

    if(uToken.getUsername() == null || uToken.getUsername().isEmpty() 
      || !credentials.containsKey(uToken.getUsername())) 
    { 
     throw new UnknownAccountException("username not found!"); 
    } 

    return new SimpleAuthenticationInfo(uToken.getUsername(), credentials.get(uToken.getUsername()), getName()); 
} 
} 

と私SecurityManager実装が

@Component 
public class CustomSecurityManager { 
public Subject getSubject() 
{ 
    Realm realm = (Realm) new MyCustomRealm(); 
    SecurityManager securityManager = new DefaultSecurityManager(realm); 
    SecurityUtils.setSecurityManager(securityManager); 
    return SecurityUtils.getSubject(); 
} 

} 

あるしかし、私はアプリケーションを実行すると、それは、Cannot cast MyCustomRealm to shiro.Realm

がどのように私は私のカスタムレルムを実装することができますというエラーがスローされますか?

答えて

0

JDBCRealmレルムを拡張しているように見えます.JdbcRealm`でインポート文を確認する必要があります。

関連する問題