springspring-mvcspring-securityspring-el

How concatenate two string in Spring Expression Language (SpEL)


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()?


Solution

  • 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)")