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

springSecurity.denied。grails 2.2.2中的消息

袁宜
2023-03-14

我正在尝试根据其角色为用户提供不同的主页

grails.plugins.springsecurity.successHandler.defaultTargetUrl = "/home"

 grails.plugins.springsecurity.securityConfigType="InterceptUrlMap"
 grails.plugins.springsecurity.interceptUrlMap=[
....
....
'/User/**':['ROLE_USER'],
'/home/**':['ROLE_ADMIN','ROLE_USER'],
....
....
]

我设置成功处理程序控制器“HomeController”

在这一点上,我重定向了角色主页

import org.codehaus.groovy.grails.plugins.springsecurity.SpringSecurityUtils

class HomeController {
   def index() {

      if (SpringSecurityUtils.ifAllGranted('ROLE_ADMIN')) {
         redirect controller: '...', action: '...'
         return
      }
      if (SpringSecurityUtils.ifAllGranted('ROLE_USER')) {
         redirect controller: 'user', action: 'show'
         return
      }

   }

}

在这里,当我通过管理员配置文件登录时,它会点击“HomeController”并重定向

但是当我尝试从用户配置文件登录时,它会给我一个错误springSecurity.denied.message...

共有2个答案

轩辕实
2023-03-14
'/user/**':['ROLE_USER'],

代替

'/User/**':['ROLE_USER'],
邴奇逸
2023-03-14

问题似乎出在您的重定向呼叫上:

redirect controller: 'UserController'

应该是

redirect controller: 'user'

因为在这种情况下,您遵循 url 召集::8080/your-app/user/show

 类似资料:
  • 我正在尝试让 kafka 消费者获取在 Java 中生成并发布到主题的消息。我的消费者如下。 consumer.java 当我运行上面的代码时,我在控制台中什么也看不到,屏幕后面的java producer程序正在‘AATest’主题下不断地发布数据。另外,在动物园管理员控制台中,当我尝试运行上面的consumer.java时,我得到了以下行 此外,当我运行指向 AATest 主题的单独控制台使用

  • 如何使用Apache Kafka生成/使用延迟消息?标准的Kafka(和Java的kafka-client)功能似乎没有这个特性。我知道我自己可以用标准的等待/通知机制来实现它,但是它看起来不是很可靠,所以任何建议和好的实践都很感谢。 找到相关问题,但没有帮助。正如我所看到的:Kafka基于从文件系统的顺序读取,并且只能用于直接读取主题,保持消息的顺序。我说的对吗?

  • 我实现了一个Java使用者,它使用来自Kafka主题的消息,然后将这些消息与POST请求一起发送到REST API。 假设一个消息已经被使用,但是Java类未能到达REST API。消息将永远不会被传递,但它将被标记为已消耗。处理这类案件最好的办法是什么?当且仅当来自REST API的响应成功时,我能以某种方式确认消息吗?

  • 我想创建没有按钮的消息框,这将消失,例如2.5秒后。我知道我可以使用并将其放入线程中而不是杀死它,但也许还有更好的方法。如果没有,如何创建空消息框?

  • 我有一个简单的GUI,它要求输入一个字符串,然后将其写入文本文件,但如果没有输入,JLabel会显示一条错误消息,我希望该错误消息保持5秒钟

  • 我对RabbitMQ很陌生,所以如果我的问题听起来很琐碎,请原谅。我想在RabbitMQ上发布消息,它将由RabbitMQ消费者处理。 我的消费者机器是一个多核机器(最好是azure上的工作者角色)。但QueueBasicConsumer一次推送一条消息。我如何编程来利用我可以同时处理多个消息的所有核心。 一种解决方案是在多个线程中打开多个通道,然后在那里处理消息。但在这种情况下,我将如何决定线程