Kle*_*ota 6 spring spring-mvc spring-security spring-el
在我的spring应用程序中,来自我的控制器和服务类的方法将此注释用于安全目的:
@PreAuthorize("hasPermission(#user, 'cadastra')")
Run Code Online (Sandbox Code Playgroud)
第二个参数,权限,应该具有以下格式:
<<action_name>>_<<class_name>>
Run Code Online (Sandbox Code Playgroud)
我应该用什么表达来实现这一点,考虑到类名是由this.getClass().getName()?
Lou*_*ler 10
要在Spring EL中连接两个字符串,请使用concat函数.有关更多详细信息,请参见此处:
Spring EL文档
例如,我使用了以下内容:
@PreAuthorize("hasRole('ROLE_'.concat(this.class.simpleName))")
Run Code Online (Sandbox Code Playgroud)
我终于解决了这个问题。我在控制器中添加了一个新方法:
public String getName() {
String nome_classe = entityClass.getSimpleName();
System.out.println("getName nome_class = "+nome_classe);
return nome_classe;
}
Run Code Online (Sandbox Code Playgroud)
现在我以这种方式使用注释:
@PreAuthorize("hasPermission(#user, 'cadastra_'+#this.this.name)")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13113 次 |
| 最近记录: |