【问题标题】:Spring Security - How can I specify anonymous role to root pageSpring Security - 如何为根页面指定匿名角色
【发布时间】:2012-03-30 01:08:35
【问题描述】:

我的网络应用的默认 URL 是 http://localhost:8080/Icd/

我想显示我的自定义登录页面,即 /index.jsp。

但是,当我配置 spring security 这样做时,我遇到了太多重定向问题。在 security.xml 文件中的代码下方。

如果我遗漏了什么,请告诉我。

<security:http auto-config="true" >

      <security:intercept-url pattern="/" access="ROLE_ANONYMOUS" />
     <security:intercept-url pattern="/*" access="ROLE_USER" />
     <security:form-login login-page="/index.jsp" />
</security:http>
<security:authentication-provider>
    <security:user-service>
        <security:user name="david" password="david" authorities="ROLE_USER,ROLE_ADMIN" />
        <security:user name="alex" password="alex" authorities="ROLE_USER" />
    </security:user-service>
</security:authentication-provider>

【问题讨论】:

    标签: spring-security


    【解决方案1】:

    当你放

    <security:intercept-url pattern="/*" access="ROLE_USER" />
    

    您是说每个页面都需要ROLE_USER 才能访问(包括登录页面本身)

    这个(未经测试的)可以解决问题:

    <security:intercept-url pattern="/index.jsp" access="permitAll"/>
    <security:intercept-url pattern="/*" access="ROLE_USER" />
    

    【讨论】:

    • 但是 index.jsp 是默认页面。您不必一定要输入 localhost:8080/Icd/index.jsp 。输入localhost:8080/Icd就足够了。
    • 我知道。但这将取决于 url 如何通过过滤器传递。如果只是//index.jsp,你测试过这个修改吗?
    • 过滤器通过的URL就是/。
    • 所以修改不起作用?如果没有,请在permitAll 行中尝试"/" 而不是"/index.jsp"
    • hmmm...“/”在我的原始帖子中...它也不起作用。不确定。
    【解决方案2】:

    尝试像下面这样指定您的配置:

     <security:http auto-config="true" use-expressions="true" access-denied-page="/krams/auth/denied" >
    
      <security:intercept-url pattern="/krams/auth/login" access="permitAll"/>
      <security:intercept-url pattern="/krams/main/admin" access="hasRole('ROLE_ADMIN')"/>
      <security:intercept-url pattern="/krams/main/common" access="hasRole('ROLE_USER')"/>
    
      <security:form-login
        login-page="/krams/auth/login"
        authentication-failure-url="/krams/auth/login?error=true"
        default-target-url="/krams/main/common"/>
    
      <security:logout
        invalidate-session="true"
        logout-success-url="/krams/auth/login"
        logout-url="/krams/auth/logout"/>
    
     </security:http>
    

    这个使用自定义登录页面。欲了解更多信息,您可以在http://krams915.blogspot.com/2010/12/spring-security-3-mvc-using-simple-user.html查看完整的应用程序

    【讨论】:

      猜你喜欢
      • 2013-04-26
      • 2015-03-25
      • 2012-02-09
      • 2011-01-23
      • 2023-04-08
      • 1970-01-01
      • 2014-03-31
      • 2014-01-31
      • 2021-08-03
      相关资源
      最近更新 更多