首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用两个spring security <intercept-url标签和相似的url模式?

如何使用两个spring security <intercept-url标签和相似的url模式?
EN

Stack Overflow用户
提问于 2013-08-15 17:41:14
回答 2查看 4.3K关注 0票数 0

我有以下情况

/drug下的所有东西都是安全的,我不希望用户能够看到/drug下的任何东西,所以我在spring安全配置中有这个规则。

代码语言:javascript
运行
复制
<intercept-url pattern="/drug/**" access="hasRole('ROLE_DRUG')" />

但是当用户点击/drug时,我希望能够显示一个访问被拒绝的页面,其中包含关于他们如何购买此部分或模块的消息,并且我必须在相同的url下显示访问被拒绝的消息,即//访问被拒绝

因此,我在spring安全配置中添加了另一个规则

代码语言:javascript
运行
复制
<intercept-url pattern="/drug/access-denied" access="isAuthenticated()"/>

但是spring security似乎只考虑了其中的一个,也就是第一个,改变顺序没有任何区别。并且url必须是/drug/access-denied

有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2013-08-15 17:54:04

请参见下面的配置,并尝试在您的配置中进行类似的配置。首先,我不明白你为什么要写

代码语言:javascript
运行
复制
<intercept-url pattern="/drug/access-denied" access="isAuthenticated()"/>

在拒绝访问页面中,您只想让经过身份验证的用户查看该页面。

使用您的配置,当它发现显示访问拒绝页面时,您将其作为isAuthenticated(),然后再次,如果用户没有登录并直接尝试访问该页面,它将把用户发送到登录页面而不是访问拒绝页面。

我觉得应该是,

代码语言:javascript
运行
复制
<intercept-url pattern="/drug/access-denied" access="permitAll"/>

然后写下,

代码语言:javascript
运行
复制
<intercept-url pattern="/drug/**" access="hasRole('ROLE_DRUG')" />

见下文

代码语言:javascript
运行
复制
<security:form-login  login-page="/login.jsp"
    default-target-url="/drug/home"  authentication-failure-handler-ref="authenticationFailureHandler" />

<security:intercept-url pattern="/login.jsp"
    access="permitAll" />


<security:intercept-url pattern="/accessDenied.jsp"
    access="permitAll" />


    <security:intercept-url pattern="/drug/*"
        access="isAuthenticated()" />


    <security:logout logout-url="/j_spring_security_logout" logout-success-url="/login.jsp?logout=success" 
        invalidate-session="true"  />

</security:http>
票数 0
EN

Stack Overflow用户

发布于 2014-09-09 15:34:48

在intercept-url标签之前将其添加到您的配置中如何?

代码语言:javascript
运行
复制
<access-denied-handler error-page="/drug/access-denied" />

然后,您可以删除“access- rule”的intercept-url规则

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18250080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档