Ich hatte Erfolg mit den folgenden:
<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>
Neue Rollen hinzugefügt werden können, ohne die Logik hier zu beeinflussen.
Um diese Antwort zu bringen 3 auf dem Laufenden mit Spring Security up, haben bisher auch die isAnonymous()
und isAuthenticated()
Ausdrücke arbeitete in Kombination das gleiche zu erreichen. Hier ein Beispiel:
<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>
Das Attribut "ifAnyGranted" wurde in Spring Security 3.0 zugunsten des Attributs "access" verworfen, z. B. "'. –
Josh
Danke für die Antwort, es hat mir geholfen. Zusätzlich sollte die Tag-Bibliothek zur jsp-Datei hinzugefügt werden: '<% @ taglib prefix =" sec "uri =" http://www.springframework.org/security/tags "%>' Wenn maven verwendet wird, sollte die folgende Abhängigkeit zum Projekt hinzugefügt werden: groupId: org.springframework.security, artifactId: spring-security-taglibs –
Sie wollten einfache Anführungszeichen verwenden, um ein unansehnliches '>' Ausdrucken im Browser zu vermeiden. Hier ist die korrekte Syntax mit einfachen Anführungszeichen: 'Click here to Logout'. Andernfalls +1. – CodeMed