如何在 Spring Security 中使用自定义角色/权限?

2023-12-29

在将旧应用程序迁移到 Spring Security 时,出现以下异常:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name '_filterChainProxy': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '_filterChainList': Cannot resolve reference to bean '_filterSecurityInterceptor' while setting bean property 'filters' with key [3]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '_filterSecurityInterceptor': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Unsupported configuration attributes: [superadmin]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:480)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)

在旧的应用程序中,有“superadmin”、“editor”、“helpdesk”等角色。但在所有 Spring Security 示例中,我只看到“ROLE_”(“ROLE_ADMIN”等)等角色。当我将“superadmin”重命名为“ROLE_ADMIN”并仅在配置中使用此角色时,一切正常。

不起作用:

 <http auto-config="true">                                      
    <intercept-url pattern="/restricted/**" access="superadmin"/>
    <form-login
        authentication-failure-url="/secure/loginAdmin.do?error=true"
        login-page="/secure/loginAdmin.do" />        
</http> 

Works:

<http auto-config="true">                                      
    <intercept-url pattern="/restricted/**" access="ROLE_ADMIN"/>
    <form-login
        authentication-failure-url="/secure/loginAdmin.do?error=true"
        login-page="/secure/loginAdmin.do" />        
</http> 

可以使用自定义角色名称吗?


您正在使用默认配置,该配置期望角色以"ROLE_"字首。您必须添加自定义安全配置并设置rolePrefix to "";

http://forum.springsource.org/archive/index.php/t-53485.html http://forum.springsource.org/archive/index.php/t-53485.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Spring Security 中使用自定义角色/权限? 的相关文章

随机推荐

  • ng-grid 支持虚拟滚动吗?

    我想在我的应用程序中使用 Slickgrid 来实现网格功能 但由于我大部分时间都使用 AngularJS 我认为 ng grid 是可行的方法 但不确定它是否支持虚拟滚动 我尝试查看他们的文档和没有找到任何有关虚拟滚动支持的信息 如果可能
  • 如何在一定时间限制后调用另一个活动

    如何为将一项活动调用另一项活动设定时间限制 我想在给定的时间限制内调用另一个活动 例如 将 A 类呼叫到 B 类 我使用了alarmManager 但我的应用程序不可能也使用线程 每当我给出Thread sleep时 它都不会执行操作 直到
  • 为什么使用单例而不是静态方法?

    对于这些有关帮助器 实用程序类的简单问题 我从未找到好的答案 为什么我要创建一个单例 无状态 而不是使用静态方法 如果对象没有状态 为什么还需要对象实例 通常 单例用于引入某种全局状态到一个应用程序 老实说 这种情况经常超出真正必要的范围
  • 函数声明中缺少“虚拟”限定符

    在搜寻一些旧代码时 我遇到了类似于以下内容的内容 class Base public virtual int Func class Derived public Base public int Func Missing virtual qu
  • 使用 Apache CXF 的 JAX-RS 文件上传

    我正在尝试使用 JAX RS 和 TomEE 的 Apache CXF 实现 2 6 14 上传文件 但上传的文件始终为空 这是代码 POST Path upload Consumes MediaType MULTIPART FORM DA
  • 使用 XAML 将故事板完成时元素的可见性设置为折叠

    我有一个故事板动画 它使用不透明度属性使控件淡出视图 完成后 我想将控件的可见性设置为折叠 我也希望能够执行相反的操作 将可见性设置为可见 然后使用故事板将控件淡入视图中 我知道我可以连接事件 但我想在 XAML 中完成这一切 是否可以 你
  • 如何从 git 存储库加载最新的 Clojure 库

    我想使用最新的开发版本clojure data xml 我正在使用 Leiningen 来管理依赖项 但是 存储库中没有 SNAPSHOT 版本Central http search maven org search 7Cgav 7C1 7
  • Common Lisp 双反引号、反引号、引号、反引号序列?

    我正在阅读 Let Over Lambda 它涉及一些非常深入的分层宏创作 这很有趣 我基本上都能跟上它的步伐 在第 4 章中 Hoyte 为 CL PPCRE 匹配和替换功能实现了读取器宏 这样您就可以执行以下操作 m foo bar d
  • 如何围绕 Web Workers API 编写 Promise 包装器?

    我正在编写一个使用 Web Workers 的库 库的使用者不应该看到任何 Web Worker 的内容 而应该从该库的公共方法返回一个 Promise 如下所示 consumer js const api new Api api doCa
  • timer_create() : -1 EAGAIN(资源暂时不可用)

    我在运行 ARM 的嵌入式 Linux 下创建计时器时遇到问题 我正在使用自制的 C 库来管理计时器 我自己没有编写代码 尽管我可以访问源代码 但我并不深入了解其实现 它工作了一段时间 然后我收到错误 EAGAIN 使用 strace 我注
  • 在急切加载中过滤导航属性

    我一直在使用软删除 现在我想加载未 删除 的实体的导航属性 我找到了一种方法 这种方法的问题对我来说并不清晰 还有另一种方法可以做到这一点 Context CreateSet Include Salary Select u gt new U
  • java.util.MissingResourceException:找不到基本名称 javax.servlet.LocalStrings、区域设置 es_ES 的包

    我试图在我的一个 servlet 中执行一些 jUnit 测试 但每当我尝试运行它时 我都会收到 ExceptionInInitializerError 我读到此错误是由于在评估静态初始值设定项或静态变量的初始值设定项期间发生的异常所致 问
  • Adobe Air mobile - 使用 SkinClass 允许滚动时,softKeyboardType 不起作用?

    我正在尝试将 softKeyboardType 设置为电子邮件 但当我使用 SkinClass spark skins mobile TextAreaSkin 时 它不会改变它 但当我脱掉 SkinClass spark skins mob
  • 摘要不适用于 OLS 估计

    我的 statsmodels OLS 估计有问题 该模型运行没有任何问题 但是当我尝试调用摘要以便我可以看到实际结果时 当 a 的形状和权重不同时 我得到需要指定的轴的 TypeError 我的代码如下所示 from future impo
  • iOS 协议/委托混淆?

    这一切都是我的第一篇文章 我会尽力做到尽可能准确 我读过很多关于 iOS 协议 委托实现的文章 但所有示例都失败了 让我们说 我有 A 和 B 控制器 想将数据从 A 发送到 B 啊 protocol exampleprot
  • 修改Python 2中的URL组件

    在 Python 2 中是否有更简洁的方法来修改 URL 的某些部分 例如 http foo bar gt http foo yah 目前 我正在这样做 import urlparse url http foo bar Modify pat
  • 在栈上创建一个指针

    我正在学习 C 我有一个关于指针的问题 我有这个代码 int max new int max 0 我想 我已经在堆上创建了一个指针 如果我不对 请告诉我 一个问题 有没有一种方法可以用一条指令创建一个初始化指针 现在 我使用两条指令 另一个
  • 为什么“stackalloc”关键字不适用于属性?

    我最近用 C 编写了一些不安全的代码 注意到这会产生语法错误 public unsafe class UnsafeByteStream public UnsafeByteStream int capacity this Buffer sta
  • 我正在 VSC 中使用 Discord.js 编写一个 Discord 机器人,除了一个命令之外的所有命令都在响应,这是我正在尝试创建的票证命令

    我目前正在编写一个完整的 AIO Discord 机器人 例如您看到的 Dyno Bot 或 Carl Bot 并且我已经完成了基本命令的制作 例如ping avatar etc 我将继续讨论更复杂的命令 例如票证系统命令 我已经完成了整个
  • 如何在 Spring Security 中使用自定义角色/权限?

    在将旧应用程序迁移到 Spring Security 时 出现以下异常 org springframework beans factory BeanCreationException Error creating bean with nam