首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用spring安全性显示隐藏元素

如何使用spring安全性显示隐藏元素
EN

Stack Overflow用户
提问于 2013-08-09 14:32:49
回答 1查看 3.8K关注 0票数 3

我有一个按钮,我想显示在登录页面。

因此,当用户登录时,我想隐藏这个按钮。我认为

代码语言:javascript
复制
<sec:authorize access="isAuthenticated()">

对此很有用,因此我在jsp中包含了如下内容

代码语言:javascript
复制
<sec:authorize access="not isAuthenticated()">
            <div class="pull-right">

但是在登录页面和登录之后都是不可见的。

有什么问题吗。

代码语言:javascript
复制
<http pattern="/foobar/static-wro4j/**" security="none"/>
<http pattern="/foobar/static/**" security="none"/>
<http pattern="/foobar/login*" security="none"/>
<http pattern="/foobar/syndic/**" security="none"/>
<http pattern="/foobar/register/**" security="none"/>
<http pattern="/foobar/lostpassword/**" security="none"/>

<http auto-config="true" use-expressions="true" create-session="ifRequired">
    <remember-me key="foobarRememberKey" token-validity-seconds="2592000"/>
    <intercept-url pattern="/foobar/presentation" access="permitAll()"/>
    <intercept-url pattern="/foobar/tos" access="permitAll()"/>
    <intercept-url pattern="/foobar/license" access="permitAll()"/>
    <intercept-url pattern="/foobar/404-error" access="permitAll()"/>
    <intercept-url pattern="/foobar/500-error" access="permitAll()"/>
    <intercept-url pattern="/foobar/rest/users" method="POST" access="permitAll()"/>
    <intercept-url pattern="/metrics/**" access="hasRole('ROLE_ADMIN')"/>
    <intercept-url pattern="/**" access="isAuthenticated()"/>

    <form-login
            login-processing-url="/foobar/authentication"
            login-page="/foobar/login"
            authentication-failure-url="/foobar/login?action=loginFailure"
            default-target-url="/foobar/"
            authentication-success-handler-ref="foobarAuthenticationSuccessHandler"/>
    <http-basic/>
    <logout logout-url="/foobar/logout"
            logout-success-url="/foobar/login"/>

    <openid-login authentication-failure-url="/foobar/login?action=loginFailure"
                  user-service-ref="openIdAutoRegisteringUserDetailsService">
        <!-- Only Google Apps is supported -->
        <attribute-exchange identifier-match="https://www.google.com/.*">
            <openid-attribute name="email" type="http://axschema.org/contact/email" required="true" count="1"/>
            <openid-attribute name="firstname" type="http://axschema.org/namePerson/first" required="true"/>
            <openid-attribute name="lastname" type="http://axschema.org/namePerson/last" required="true"/>
        </attribute-exchange>
    </openid-login>
</http>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-09 14:39:48

确保在JSP中包含了Spring安全标记库:

代码语言:javascript
复制
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>

在您的安全配置中包括:

代码语言:javascript
复制
<beans:bean class="org.springframework.security.web.access.expression.DefaultWebSecurityExpressionHandler"/>

然后使用authorize标记:

代码语言:javascript
复制
<sec:authorize access="isAuthenticated()">
   <!-- Content for Authenticated users -->  
</sec:authorize>

<sec:authorize access="isAnonymous()">
   <!-- Content for Unauthenticated users -->  
</sec:authorize>
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18149196

复制
相关文章

相似问题

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