Authentication <;第二节:授权>;不';行不通

Authentication <;第二节:授权>;不';行不通,authentication,spring-security,xhtml,authorization,facelets,Authentication,Spring Security,Xhtml,Authorization,Facelets,我有以下用户xhtml页面: <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:p="http://primefaces.org/ui" xmlns:sec="http://www.springframework.org/security/tags">

我有以下用户xhtml页面:

<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:p="http://primefaces.org/ui"
    xmlns:sec="http://www.springframework.org/security/tags">
<head>
<title>User</title>
</head>

<body>
    <p>User</p>
    <sec:authorize access="hasRole('ROLE_ADMIN')">
        <p>Only admin can see this !</p>
    </sec:authorize>
</body>
</html>
重要吗?这是问题的原因吗

My maven安全依赖项:

        <dependency>
                <groupId>org.springframework.security</groupId>
                <artifactId>spring-security-core</artifactId>
                <version>${org.springframework.security.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-web</artifactId>
            <version>${org.springframework.security.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-config</artifactId>
            <version>${org.springframework.security.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-taglibs</artifactId>
            <version>${org.springframework.security.version}</version>
        </dependency>

org.springframework.security
spring安全内核
${org.springframework.security.version}
org.springframework.security
spring安全网
${org.springframework.security.version}
org.springframework.security
spring安全配置
${org.springframework.security.version}
org.springframework.security
spring安全标记库
${org.springframework.security.version}

我终于解决了这个问题

以下是对我帮助很大的链接:

1) 这里是“Amreesh Tyagi”的答案

2) 本文的第三部分(Facelet的III安全标签)


我使用了Amreesh Tyagi的springsecurity.taglib.xml文件,而不是本文中的文件,因为我在访问函数方面遇到了问题。

在这里添加了一个答案,因为我有相同的症状,但发现了不同的问题。 我们的标签没有按预期工作。每个人都可以看到安全内容。 解决方案是我们的XML名称空间在页面上拼写错误

 xmlns="http://www.sprinfgramework.org/schema/security"
这需要一段时间才能找到,因为拼写错误没有产生任何错误(这是令人惊讶的),它只是忽略了安全标签并显示了其中包含的内容


希望这对某人有所帮助。

Config看起来不错。在测试页面而不重新启动浏览器时,您是否更改了权限?用户权限是Spring Security中的会话范围。@柯南:很抱歉,我不明白“在测试页面时更改权限而不重新启动浏览器”是什么意思,但我已经使用多个用户(具有不同的角色,管理员和非管理员)测试了页面,每次它都显示“只有管理员可以看到此内容!”。。。我想这只是因为没有认出标签。。。。但为什么呢?@Conan(和所有人),我是否缺少依赖性?另一个可能的解决方案:
        <dependency>
                <groupId>org.springframework.security</groupId>
                <artifactId>spring-security-core</artifactId>
                <version>${org.springframework.security.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-web</artifactId>
            <version>${org.springframework.security.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-config</artifactId>
            <version>${org.springframework.security.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-taglibs</artifactId>
            <version>${org.springframework.security.version}</version>
        </dependency>
 xmlns="http://www.sprinfgramework.org/schema/security"