How concatenate two string in Spring Expression Language (SpEL)
20,443
Solution 1
I finally solve this. I add a new method in my controller:
public String getName() {
String nome_classe = entityClass.getSimpleName();
System.out.println("getName nome_class = "+nome_classe);
return nome_classe;
}
and now I use the annotation in that way:
@PreAuthorize("hasPermission(#user, 'cadastra_'+#this.this.name)")
Solution 2
To concatenate two strings in Spring EL you use concat
function . See here for more details :
Spring EL docs
for example, I used the following :
@PreAuthorize("hasRole('ROLE_'.concat(this.class.simpleName))")
Author by
Kleber Mota
Updated on August 01, 2022Comments
-
Kleber Mota over 1 year
In my spring application, the methods from my controller and service classes have this annotation to security purposes:
@PreAuthorize("hasPermission(#user, 'cadastra')")
the second argument, the permission, should have this format:
<<action_name>>_<<class_name>>
What expression I should use to accomplish that, taking in consideration the class name is held by
this.getClass().getName()
?