Shiro 报错 org.apache.commons.collections.FastHashMap解决办法

org.apache.commons.collections.FastHashMap是因为我在使用BeanUtils包时,当时使用的是最新的1.9.3,但是一运行就会出错,当我把BeanUtilsjar换成1.8.3的版本就好了。

展开阅读全文

关于Shiro加salt报错解决办法

01-11

ShiroSecurityRealm extends AuthorizingRealmrn使用的是JDBC的Realmrn[code=java]rnprotected AuthenticationInfo doGetAuthenticationInfo(rn AuthenticationToken authcToken) throws AuthenticationException rn UsernamePasswordToken token = (UsernamePasswordToken) authcToken;rnrn String username = (String) token.getPrincipal(); // 得到用户名rn String password = new String((char[]) token.getCredentials()); // 得到密码rnrn // System.out.println(username+","+ password);rn if (StringUtils.isNotBlank(username)rn && StringUtils.isNotBlank(password)) rnrn Map params=new HashMap<>();rn params.put("username", username);rn params.put("password", password);rn rn rn List userInfoList = userInfoService.listUserByMap(params);rn UserInfo userInfo=new UserInfo();rn if(userInfoList!=null&&userInfoList.size()==1)//rn userInfo = userInfoList.get(0);rn elsern return null;rn rnrn SimpleAuthenticationInfo info = new SimpleAuthenticationInfo(rn userInfo.getUsername(), userInfo.getPassword(),getName());rn info.setCredentialsSalt(ByteSource.Util.bytes(userInfo.getUsername()));// 盐值rn return info;rn else rn return null;rn rnrn rn[/code]rnrnaction里面rn[code=java]Subject subject = SecurityUtils.getSubject();rn UsernamePasswordToken token = new UsernamePasswordToken(userName, MD5Encode.encode(password+userName, "md5"));rn try rn subject.login(token);[/code]rn这样写为什么不行,总是抛IncorrectCredentialsException异常。我采用的加盐的办法是 用户密码+用户名 即用户名作为盐值。 论坛

没有更多推荐了,返回首页