miałem sukces z następujących czynności:
<sec:authorize ifAnyGranted="ROLE_ANONYMOUS">
<td><a href="<c:url value="/login.htm"/>">Login</a></td>
</sec:authorize>
<sec:authorize ifNotGranted="ROLE_ANONYMOUS">
<td><a href="<c:url value="/j_spring_security_logout"/>">Logout</a></td>
</sec:authorize>
Nowe role mogą być dodawane bez wpływu na logikę tutaj.
Aby wywołać tę odpowiedź na bieżąco z wiosennym Bezpieczeństwa 3, stosując wyrażenia isAnonymous()
i isAuthenticated()
pracował dobrze w połączeniu dotąd osiągnąć to samo. Oto przykład:
<sec:authorize access="isAnonymous()">
<form method="POST" action="<c:url value='j_spring_security_check'/>">
Username: <input name="j_username" type="text" value="${SPRING_SECURITY_LAST_USERNAME}" />
Password: <input name="j_password" type="password" />
<input type="submit" value="Sign in" />
</form>
</sec:authorize>
<sec:authorize access="isAuthenticated()">
<a href="<c:url value="/j_spring_security_logout" />">Logout</a>
</sec:authorize>
Atrybut 'ifAnyGranted' został wycofany w Spring Security 3.0 na rzecz atrybutu' access', na przykład ''. –
Josh
Dziękuję za odpowiedź, pomogło mi to. Ponadto do pliku jsp należy dodać bibliotekę znaczników: '<% @ taglib prefix =" sec "uri =" http://www.springframework.org/security/tags "%>' Jeśli maven jest używany, następująca zależność powinna zostać dodana do projektu: groupId: org.springframework.security, artifactId: spring-security-taglibs –
Zamierzałeś użyć pojedynczych cudzysłowów, aby uniknąć brzydkiego drukowania '>' w przeglądarce. Oto poprawna składnia z pojedynczymi cytatami: 'Click here to Logout'. W przeciwnym razie +1. – CodeMed