как условно показать, что jsp содержание к вошло в систему пользователи с безопасностью Spring

Вы можете использовать eval, но вы можете легко подвергнуть свой сайт всем видам атак внедрения кода, если вы не будете очень осторожны.

Более безопасным решением было бы сопоставить предложенный оператор с заранее определенным белым списком, а затем вызвать соответствующий бит, если код с оператором жестко задан.

С

43
задан Pablojim 28 October 2009 в 16:26
поделиться

4 ответа

Я добился успеха со следующим:

    <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>

Новые роли могут быть добавлены, не затрагивая здесь логику.


Чтобы обновить этот ответ до Spring Security 3, используйте Выражения isAnonymous () и isAuthenticated () до сих пор хорошо работали в комбинации для достижения одного и того же. Вот пример:

<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>
80
ответ дан 26 November 2019 в 22:29
поделиться

Вот как я это делаю:

<%@ page import="org.springframework.security.context.SecurityContextHolder" %>

<c:if test="<%=SecurityContextHolder.getContext().getAuthentication() != null %>">
    <!-- your secure content here -->
</c:if>

Сообщите мне, работает ли это и для вас ...

-aj

1
ответ дан 26 November 2019 в 22:29
поделиться

Как насчет:

<%@ taglib uri="http://acegisecurity.org/authz" prefix="authz" %>

<c:set var="authenticated" value="${false}"/>
<authz:authorize ifAllGranted="ROLE_USER">
    <c:set var="authenticated" value="${true}"/>
</authz:authorize>

<c:if test="${authenticated}">
<!-- your secure content here -->
</c:if>
3
ответ дан 26 November 2019 в 22:29
поделиться

How 'bout this? - Spring 2.5 compliant ;-)

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib prefix="security" uri="http://www.springframework.org/security/tags" %>

<security:authorize ifAllGranted="ROLE_USER">
   Welcome <%= request.getUserPrincipal().getName() %>
   <a href="<c:url value="/j_spring_security_logout"/>">Logout</a><br/>
</security:authorize>
7
ответ дан 26 November 2019 в 22:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: