Skip to content

Commit b510720

Browse files
author
Gerald Unterrainer
committed
some refactoring and preventing npe
1 parent 486cde9 commit b510720

File tree

1 file changed

+19
-19
lines changed

1 file changed

+19
-19
lines changed

src/main/java/info/unterrainer/commons/httpserver/accessmanager/HttpAccessManager.java

+19-19
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,7 @@ public HttpAccessManager(final String host, final String realm) {
5252

5353
@Override
5454
public void manage(final Handler handler, final Context ctx, final Set<Role> permittedRoles) throws Exception {
55-
checkAccess(ctx, permittedRoles,
56-
((HttpServer) ctx.attribute(Attribute.JAVALIN_SERVER)).getUserAccessInterceptor());
55+
checkAccess(ctx, permittedRoles);
5756
handler.handle(ctx);
5857
}
5958

@@ -101,10 +100,9 @@ private void initPublicKey() {
101100
}
102101
}
103102

104-
private void checkAccess(final Context ctx, final Set<Role> permittedRoles,
105-
final Consumer<UserDataJson> userAccessInterceptor) {
103+
private void checkAccess(final Context ctx, final Set<Role> permittedRoles) {
106104
try {
107-
TokenVerifier<AccessToken> tokenVerifier = persistUserInfoInContext(ctx, userAccessInterceptor);
105+
TokenVerifier<AccessToken> tokenVerifier = persistUserInfoInContext(ctx);
108106

109107
if (permittedRoles.isEmpty() || permittedRoles.contains(DefaultRole.OPEN) && permittedRoles.size() == 1)
110108
return;
@@ -146,8 +144,7 @@ private boolean hasPermittedRole(final Context ctx, final Set<Role> permittedRol
146144
return false;
147145
}
148146

149-
private TokenVerifier<AccessToken> persistUserInfoInContext(final Context ctx,
150-
final Consumer<UserDataJson> userAccessInterceptor) {
147+
private TokenVerifier<AccessToken> persistUserInfoInContext(final Context ctx) {
151148
String authorizationHeader = ctx.header(HttpHeader.AUTHORIZATION.asString());
152149

153150
if (authorizationHeader == null || authorizationHeader.isBlank())
@@ -177,18 +174,21 @@ private TokenVerifier<AccessToken> persistUserInfoInContext(final Context ctx,
177174
clientRoles = token.getResourceAccess().get(key).getRoles();
178175
ctx.attribute(Attribute.USER_CLIENT_ROLES, clientRoles);
179176

180-
userAccessInterceptor.accept(UserDataJson.builder()
181-
.userName(userName)
182-
.givenName(token.getGivenName())
183-
.client(token.getIssuedFor())
184-
.familyName(token.getFamilyName())
185-
.email(token.getEmail())
186-
.emailVerified(token.getEmailVerified())
187-
.realmRoles(token.getRealmAccess().getRoles())
188-
.clientRoles(clientRoles)
189-
.isActive(token.isActive())
190-
.isBearer(token.getType().equalsIgnoreCase("bearer"))
191-
.build());
177+
Consumer<UserDataJson> userAccessInterceptor = ((HttpServer) ctx.attribute(Attribute.JAVALIN_SERVER))
178+
.getUserAccessInterceptor();
179+
if (userAccessInterceptor != null)
180+
userAccessInterceptor.accept(UserDataJson.builder()
181+
.userName(userName)
182+
.givenName(token.getGivenName())
183+
.client(token.getIssuedFor())
184+
.familyName(token.getFamilyName())
185+
.email(token.getEmail())
186+
.emailVerified(token.getEmailVerified())
187+
.realmRoles(token.getRealmAccess().getRoles())
188+
.clientRoles(clientRoles)
189+
.isActive(token.isActive())
190+
.isBearer(token.getType().equalsIgnoreCase("bearer"))
191+
.build());
192192

193193
if (!token.isActive()) {
194194
setTokenRejectionReason(ctx, "Token is inactive.");

0 commit comments

Comments
 (0)