Skip to content

Commit 316c3f4

Browse files
committed
sessions - Introduced new SessionInvalider component providing an extension point to custom behaviours during logout
1 parent 2c0fbbd commit 316c3f4

File tree

2 files changed

+20
-3
lines changed

2 files changed

+20
-3
lines changed
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package restx.security;
2+
3+
import restx.factory.Component;
4+
5+
@Component
6+
public class SessionInvalider {
7+
8+
public SessionInvalider() {
9+
}
10+
11+
public void invalidateSession(){
12+
// Clearing principal
13+
RestxSession.current().clearPrincipal();
14+
RestxSession.current().define(String.class, Session.SESSION_DEF_KEY, null);
15+
}
16+
}

restx-security-basic/src/main/java/restx/security/SessionResource.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,12 @@ public class SessionResource {
1919

2020
private final BasicPrincipalAuthenticator authenticator;
2121
private final UUIDGenerator uuidGenerator;
22+
private SessionInvalider sessionInvalider;
2223

23-
public SessionResource(BasicPrincipalAuthenticator authenticator, UUIDGenerator uuidGenerator) {
24+
public SessionResource(BasicPrincipalAuthenticator authenticator, UUIDGenerator uuidGenerator, SessionInvalider sessionInvalider) {
2425
this.authenticator = authenticator;
2526
this.uuidGenerator = uuidGenerator;
27+
this.sessionInvalider = sessionInvalider;
2628
}
2729

2830

@@ -69,8 +71,7 @@ public Session currentSession() {
6971
@PermitAll
7072
@DELETE("/sessions/{sessionKey}")
7173
public Status logout(String sessionKey) {
72-
RestxSession.current().clearPrincipal();
73-
RestxSession.current().define(String.class, Session.SESSION_DEF_KEY, null);
74+
sessionInvalider.invalidateSession();
7475
return Status.of("logout");
7576
}
7677
}

0 commit comments

Comments
 (0)