【问题标题】:Shiro Security, multiple realms which authorization info is taken?Shiro Security,多个领域,哪些授权信息被占用?
【发布时间】:2012-12-12 16:57:41
【问题描述】:

我在我的 shiro 安全保护 java 应用程序中使用了两个领域。一个支持我的 OAuthToken,另一个支持 UsernamePasswordToken。现在,当我的用户使用 OAuthToken 进行身份验证时,我的 OAuthRealm 的 doGetAuthenticationInfo 方法被调用,但我的 PasswordRealm 的 doGetAuthorizationInfo 被调用,谁能告诉我,为什么?

亲切的问候 克里斯

【问题讨论】:

    标签: java security authentication authorization shiro


    【解决方案1】:

    尝试在您的领域中覆盖方法isPermitted()。 Shiro 使用此方法检查每个声明的领域,是否允许当前领域授权用户。您可以以某种方式实现此方法:

    /**
     * {@inheritDoc}
     */
    @Override
    public boolean isPermitted(PrincipalCollection principals, String permission) {
        if (principals.fromRealm("realm name").isEmpty()) {
            return false;
        }
        else {
            return super.isPermitted(principals, permission);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2014-08-25
      • 2019-01-04
      • 2012-03-01
      • 2018-01-25
      • 1970-01-01
      • 2012-11-06
      • 2014-10-23
      • 2016-08-13
      • 1970-01-01
      相关资源
      最近更新 更多