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))")
Share:
20,443
Kleber Mota
Author by

Kleber Mota

Updated on August 01, 2022

Comments

  • Kleber Mota
    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()?