标签:sse row 回调 config map real throw username 单点登录
项目集成shiro的时候,有写某个自定义类然后继承自AuthorizingRealm
并且重写实现了他的2个方法:
1、其中一个:认证回调 验证账户密码的
doGetAuthenticationInfo
2、另外一个:授权查询 验证权限的
doGetAuthorizationInfo
ok,上面没什么用,只是讲述一下,正真用到的是下面的代码
/** * 认证密码匹配调用方法 * @param authcToken * @param info * @throws AuthenticationException */ @Override protected void assertCredentialsMatch(AuthenticationToken authcToken, AuthenticationInfo info) throws AuthenticationException { UsernamePasswordToken token = (UsernamePasswordToken) authcToken; // 若单点登录,则使用单点登录授权方法。 if (!token.getUsername().equals("thinkgem")) { Map<String,Object> map = Maps.newConcurrentMap(); map.put("name",token.getUsername()); map.put("pwd",String.valueOf(token.getPassword())); // 调用sso连接认证 String result = HttpClientUtils.doGet(Global.getConfig("ssoLoginUrl"), map); if (result.equals("true")){ return; } } // 否则还是继续匹配(兜底方案) super.assertCredentialsMatch(token, info); }
使用上述代码就能通过自定义密码匹配认证
标签:sse row 回调 config map real throw username 单点登录
原文地址:http://www.cnblogs.com/zhouyantong/p/7760820.html