Shiro自定义密码匹配认证
Posted 涉世未深的smile
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shiro自定义密码匹配认证相关的知识,希望对你有一定的参考价值。
项目集成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); }
使用上述代码就能通过自定义密码匹配认证
以上是关于Shiro自定义密码匹配认证的主要内容,如果未能解决你的问题,请参考以下文章