2016-05-06 16 views
0

Ich versuche, mich um Spring Security zu wickeln. Was ich versuche zu erreichen, ist, dass die API global gesichert ist, also nicht methodenspezifisch, abhängig vom HTTP-Verb und der Benutzerrolle.Globale Autorisierung im Frühjahr Sicherheit

So auf GET Methoden müssen u sein authentifiziert und tragen das USER Rolle. Alles andere benötigt eine ADMIN-Berechtigung. Meine User-Entity-Klasse sieht wie folgt aus (die Datenaufbelichtung Lombok verwenden):

@Entity 
@Data 
@NoArgsConstructor 
@Table([email protected](columnNames={"username"})) 

public class User { 

    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private long id; 

    @NotNull 
    private String username, password; 

    @NotNull 
    @Enumerated(EnumType.STRING) 
    private UserRole role; 

    private boolean activated, tokenExpired; 
} 

jede Hilfe sehr geschätzt würde, würde in dem Projekt keine XML bevorzugen.

+0

Für die Zukunft: Mit '@ ManyToMany' für' roles'. –

+0

vermerkt;)! Wird besorgt! –

Antwort

0

Ich bin ein alter Hund mit alten Tricks, also hier die XML-Lösung:

In applicationContext-security.xml:

<http use-expressions="true" disable-url-rewriting="true"> 

    <intercept-url pattern="/**" method="GET" access="hasRole('ROLE_USER')"/> 
    <intercept-url pattern="/**" access="hasRole('ROLE_ADMIN')"/> 

    <http-basic/> 

</http> 
Verwandte Themen