我有一个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>
<% } %>
登录按钮应该更改为链接但不是。
提前谢谢。
答案 0 :(得分:1)
尝试使用taglib provided by Spring Security。特别是,您可以使用<sec:authorize>
标记:
<sec:authorize access="isAuthenticated()">
....
</sec:authorize>
从其文档:
如果已配置的访问表达式对当前经过身份验证的主体的计算结果为true,则输出标记正文的标记。
有关您可以在上面access
表达式中使用的功能的概述,请查看参考文档的this section。