Spring Security会记录值

时间:2013-03-14 20:52:10

标签: java spring-security

我有一个JSP页面,它以我在执行spring security之前登录的方式从Java中的accout对象获取用户信息。当用户登录时,我希望我的按钮显示我在div中的内容。我之前使用的是会话,但现在我正在使用Spring Security它认为它没有登录。我搜索谷歌和堆栈试图找到我的问题的答案,但我不断提出空白。这是我在JSP中的内容。

<div id="topRightMenu" class="f-right">
                <% if(    session.getAttribute("auth") == null
                        || session.getAttribute("auth").toString() == "false"
                        || session.getAttribute("Account") == null) { %>


                    <div id="login-form">
                        <form action="/<c:url value='j_spring_security_check' />" method="post" id="loginForm">
                            Username: <input class="text small" type="text" name="j_username" value="" /><br/>
                            Password: <input class="text small" type="password" name="j_password" value="" /><br/>
                            <label class="uiButton uiButtonLarge btnLogin">
                                <input type="submit" name="btnLogin" value="login" />
                            </label>
                        </form>
                    </div>

                    <button class="f-right" id="loginButton">Sign In</button>

                <% } else { %>
                    <ul class="noMarkers grid">
                        <li><a href="/account/edit/" title="Click to View Account Information">Account</a></li>
                        <li><a href="/profile/<%= Acc.getAccountID() %>" title="Click to View Your Profile">Profile</a></li>
                        <li><a href="/help" title="Click to Get Help">Help</a></li>
                        <li><a href="/account/logout" title="Log Out">Log Out</a></li>
                    </ul>
                <% } %>

登录按钮应该更改为链接但不是。
提前谢谢。

1 个答案:

答案 0 :(得分:1)

尝试使用taglib provided by Spring Security。特别是,您可以使用<sec:authorize>标记:

<sec:authorize access="isAuthenticated()">
    ....
</sec:authorize>

从其文档:

  

如果已配置的访问表达式对当前经过身份验证的主体的计算结果为true,则输出标记正文的标记。

有关您可以在上面access表达式中使用的功能的概述,请查看参考文档的this section