认证失败:Authentication failed for token submission [org.apache.shiro.authc.UsernamePasswordToken - admin, rememberMe=false]. Possible unexpected error? (Typical or expected login exceptions should extend from AuthenticationException).--------------报错登陆异常
通过打印:定位到service注入失败
public class UserRealm extends AuthorizingRealm{
@Autowired
private static UserService userService/*=new UserServiceImpl()*/;
public void setUserService(UserService userService) {
this.userService = userService;
}
/**
* 用于的权限的认证。
* @param principalCollection
* @return
*/
@Override
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
String username = principalCollection.getPrimaryPrincipal().toString() ;
System.out.println(username);
SimpleAuthorizationInfo info = new SimpleAuthorizationInfo() ;
Set<String> roleName = userService.findRole(username) ;
Set<String> permissions = userService.findPermission(username) ;
info.setRoles(roleName);
info.setStringPermissions(permissions);
return info;
}
/**用户用户登陆*/
@Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
System.out.println("进入验证了");
//获取用户账号
UsernamePasswordToken authcToken = (UsernamePasswordToken) token;
String username = authcToken.getUsername();
if(username!=null &&!username.equals("")){
System.out.println("查询用户");
User user=userService.Login(username);
//userService.Login(username);
System.out.println("打印密码:"+user.getPassword());
if(user !=null){
AuthenticationInfo authenticationInfo = new SimpleAuthenticationInfo(user.getUsername(),user.getPassword(),"") ;
return authenticationInfo ;
}
}
return null;
}
}
将UserRealm修改后就ok了