Shiro+Webseal作单点登陆

在平常的项目中,使用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

相关文章
相关标签/搜索