SpringSecurity--Failed to evaluate expression 'ROLE_USER'
SpringSecurity--Failed to evaluate expression 'ROLE_USER'
ifanjiaxin 发表于2年前
SpringSecurity--Failed to evaluate expression 'ROLE_USER'
  • 发表于 2年前
  • 阅读 213
  • 收藏 0
  • 点赞 2
  • 评论 0

移动开发云端新模式探索实践 >>>   

摘要: Java.lang.IllegalArgumentException: Failed to evaluate expression 'ROLE_USER'

                               Failed to evaluate expression 'ROLE_USER'

                    一,问题描述

                            Spring-Security 配置文件中有如下一行配置,它表示即将访问的 URL 会被拦截并需要

                        某种角色或权限。

                            

                            这是官方的配置,但是很多国内的教程上基本上都打开了使用 Spring Security 的表达

                        式语言,所以很多初学者,也不懂是什么意思就写成了如下这种样子

                            

                            最后部署到服务器进行启动的时候就出现了如下这类异常

                            Java.lang.IllegalArgumentException: Failed to evaluate expression 'ROLE_USER'

                            ....

                            ....

                    二,解决方案

                        首先我解释下,什么是 use-expressions=”true” 这句话的含义,它表示你即将打开 

                    Spring Security 的表达式语言支持,那么拦截的 URL 的 access 属性的值要求为符合这个语

                    言格式,那么这个格式是什么呢,比如说需要某种角色才能访问,必须写成 hasRole('xxxx')

                        所以,解决方案就是,

                        1,要么按照官方的来,不使用这个表达式语言,去掉 use-expressions=”true”这句,

                        2,修改 intercept-url 元素的 access 属性值,改为符合格式的,如下

                        

  • 点赞
  • 收藏
  • 分享
粉丝 29
博文 54
码字总数 16699