1

我有一个 JSP 页面,它从我在 Java 中的 accout 对象中获取用户信息,这种方式我在实现 spring 安全性之前正在登录。我希望我的按钮在用户登录时显示我在我的 div 中的内容。我之前使用过会话,但现在我使用的是 Spring Security,它认为它没有登录。我搜索了 google 和 Stack 以尝试找到我的问题的答案,但我一直想出空白。这是我的 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>
                <% } %>

登录按钮应该更改为链接,但事实并非如此。
提前致谢。

4

1 回答 1

1

尝试使用Spring Security 提供的 taglib。特别是,您可以使用<sec:authorize>标签:

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

从其文档中:

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

有关可以在上述access表达式中使用的函数的概述,请查看参考文档的这一部分

于 2013-03-14T21:08:25.087 回答