当前位置: 首页 > 知识库问答 >
问题:

秒:授权不起作用-Spring Boot 2、Thymeleaf 3、Thymeleaf Spring Security 5集成包

唐增
2023-03-14

我在和

  • Spring Boot 2.2.5
  • Thymeleaf 3.0.11
  • Thymeleaf Spring Security 5,3.0.4版本

我在pom.xml中使用以下依赖项:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>

<dependency>
    <groupId>org.thymeleaf.extras</groupId>
    <artifactId>thymeleaf-extras-springsecurity5</artifactId>
</dependency>
<html xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/extras/spring-security">

Thymeleaf Security方言的sec:authentication标记工作良好,并且还显示正确的角色。在调用sec:authorize=“isauthenticated()”方法时,sec:authorize标记似乎也可以工作。但是,我在评估模板中用户的角色时遇到了困难,这两种方法都是使用sec:authorize=“HasRole('...')”th:if=“${#authorization.expression('has role('...'')')}”。虽然使用sec:authentication=“principal.authentities”正确显示了这些角色,但似乎无法评估这些角色。

知道我的窃听器或误会藏在哪里了吗?非常感谢您的提前支持。

共有1个答案

巩子实
2023-03-14

经过更多的研究,我发现了我的问题。将前缀role_添加到角色名(在数据源中)后,一切正常。

 类似资料:
  • 我正在使用带Spring security的Thymeleaf模板引擎。为了使用sec:authorize功能,我还使用了Thymeleaf-Spring Security集成模块,但由于某些原因,它不起作用。我没有收到任何错误,但是html div块中的所有代码都会被执行,无论用户扮演哪个角色。 例如,当我以员工身份登录时,我也会看到“去领导”和“去系统”按钮,但我不想让员工看到这些按钮。 这是

  • EDIT做了一些更多的测试:当我只配置secure-annotations=“enabled”时,基于角色的安全性工作。此外,配置pre-postannotations=“enabled”时,既不安全也不预授权。当我只配置前-后注释时,它仍然不起作用。 编辑2 更多的测试:只有secured_annotations=“enabled”,对channelservice的调用通过Cglib2AopPr

  • 我有以下几点。 我还尝试了一系列其他的排列,似乎都不起作用。我已经检查了这部分代码是否被执行,它执行并没有错误。 编辑 忘了提一下,所有的url都不能被经过身份验证的用户访问。但是任何经过身份验证的用户都可以访问所有URL。例如,以登录,我可以点击和,这是不应该发生的。 我没有东西可以尝试了。Emm...我已经用完了。我应该检查什么?

  • 问题内容: 正在尝试在方法级别定义访问规则,但是它从未如此有效。 安全配置 ExampleController 每当我尝试使用user:user它访问/ v2 / home时,它执行得很好,是否由于“用户”没有访问权限而给我“拒绝访问”错误ROLE_ADMIN? 我实际上是在考虑在方法级别放弃访问规则并坚持使用http()ant规则,但是我必须知道为什么它对我不起作用。 问题答案: 在控制器上使用

  • 我正在使用 Artifactory 2.4.0 和 Jenkins 1.438,我有一个包含多个模块的 maven 项目。需要将所有模块(jars和一场由此产生的战争)部署到Jenkins的远程Artifactory服务器中。 我的artifactory用户管理员使用默认密码(password),我尝试在jenkins上执行的所有构建都可以正常工作。因此,当我决定更改de Artifactory管

  • 授权我们的应用程序访问DocuSign帐户的步骤之一需要人工导航到oauth服务(https://account-d.docusign.com/oauth/auth?response_type=code 我在开发人员门户网站上看到了一些关于这是一件需要多次完成的事情的参考资料,我还看到它写在同一个站点上,只需要完成一次(该站点实际上充满了相互矛盾的信息)。 有人知道这一步是否需要做多次吗?对我来说