【问题标题】:How to grant access for all authenticated users?如何为所有经过身份验证的用户授予访问权限?
【发布时间】:2010-10-07 20:50:16
【问题描述】:

需要使用 Spring Security 向没有任何角色的用户授予访问权限。必须授予任何人如何处理身份验证才能访问任何 URL。那么我可以通过这样的方式来做到这一点,或者可能是其他方式吗?

<http auto-config='true'>
  <intercept-url pattern="/**" access="ALL" />
  <intercept-url pattern="/login.jsp" filters="none" />
  <form-login login-page="/login.jsp" />
</http>

【问题讨论】:

    标签: java spring-security


    【解决方案1】:

    实际上你只需要创建你自己的 AccessDecisionManager 和你自己的 AccessDecisionVoter(s) 并将它们传递到这样的块中:

    <http .... access-decsion-manager="myAccessManager">
      .....
    </http>
    
    <bean id="myAccessManager" class="org.springframework.security.vote.AffirmativeBased">
       <property name="decisionVoters">
          <list>
             <bean id="myVoter" class=[some subclass of AccessDecisionVoter] />
          </list>
       </property>
    </bean>
    

    这不是 100% 的解决方案,但它应该能让您走上正确的道路。 Spring Security 中的“自动配置”设置在后台创建了很多这样的类,如果没有其他可用的正确类的 bean,则会自动加载它们。

    【讨论】:

      【解决方案2】:

      您可能正在寻找 IS_AUTHENTICATED_FULLY 或 IS_AUTHENTICATED_REMEMBERED 或 IS_AUTHENTICATED_ANONYMOUSLY

      也检查http://www.acegisecurity.org/acegi-security/apidocs/org/acegisecurity/vote/AuthenticatedVoter.html

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-04-18
        • 2019-06-28
        • 2020-11-26
        • 1970-01-01
        • 1970-01-01
        • 2019-05-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多