在平常的项目中,使用Shiro一般都会实现本身的AuthorizingRealm,在实现AuthorizingRealm的同时须要设置Hash算法及迭代次数。以下:java
HashedCredentialsMatcher matcher = new HashedCredentialsMatcher(SystemService.HASH_ALGORITHM); matcher.setHashIterations(SystemService.HASH_INTERATIONS); setCredentialsMatcher(matcher);
与Webseal作SSO时,只能获取到用户的ID,在没有密码的状况下告诉Shiro使用无密码验证。算法
setCredentialsMatcher(new AllowAllCredentialsMatcher());
AllowAllCredentialsMatche始终返回true。安全
最后一步就是在LoginController里加个SSO的方法,获取用户ID,生成Token对象,调用 login服务器
UsernamePasswordToken token = new UsernamePasswordToken(); token.setUsername(userId); UserUtils.getSubject().login(token);
还能够在SSO方法里作请求来源服务器的识别等,增强安全。code