Skip to content
This repository was archived by the owner on May 22, 2021. It is now read-only.

Commit 84f2331

Browse files
committed
Added Jwt as parameter of methods
1 parent 366b0e3 commit 84f2331

4 files changed

Lines changed: 29 additions & 5 deletions

File tree

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.gewia.common.auth.jwt;
2+
3+
import lombok.AllArgsConstructor;
4+
import lombok.Getter;
5+
import java.util.UUID;
6+
7+
@Getter
8+
@AllArgsConstructor
9+
public class Jwt {
10+
11+
private final UUID userId;
12+
private final JwtScopes userScopes;
13+
14+
}

auth/src/main/java/com/gewia/common/auth/jwt/JwtScopes.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,8 @@ public boolean getResult() {
3636
return containing;
3737
}
3838

39+
public boolean hasScope(String scope) {
40+
return this.scopes.contains(scope);
41+
}
42+
3943
}

spring-auth/src/main/java/com/gewia/common/spring/auth/SpringAuthentication.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ public abstract class SpringAuthentication implements InitializingBean {
1515

1616
@Override
1717
public void afterPropertiesSet() {
18-
interceptors = this.addAuthenticationInterceptors(interceptors);
18+
this.addAuthenticationInterceptors(interceptors);
1919
}
2020

21-
abstract public List<HandlerInterceptorAdapter> addAuthenticationInterceptors(List<HandlerInterceptorAdapter> authenticationInterceptors);
21+
abstract public void addAuthenticationInterceptors(List<HandlerInterceptorAdapter> authenticationInterceptors);
2222

2323
}

spring-auth/src/main/java/com/gewia/common/spring/auth/SpringAuthenticationWebConfig.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
package com.gewia.common.spring.auth;
22

3-
import com.auth0.jwt.interfaces.DecodedJWT;
43
import java.util.List;
4+
import java.util.UUID;
55
import javax.servlet.http.HttpServletRequest;
6+
import com.auth0.jwt.interfaces.DecodedJWT;
7+
import com.gewia.common.auth.jwt.Jwt;
8+
import com.gewia.common.auth.jwt.JwtScopes;
69
import org.springframework.context.annotation.Configuration;
710
import org.springframework.core.MethodParameter;
811
import org.springframework.web.bind.support.WebDataBinderFactory;
@@ -20,12 +23,15 @@ public class SpringAuthenticationWebConfig implements WebMvcConfigurer, HandlerM
2023

2124
@Override
2225
public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception {
23-
return ((HttpServletRequest) webRequest.getNativeRequest()).getAttribute("accessToken");
26+
DecodedJWT decodedJWT = (DecodedJWT) ((HttpServletRequest) webRequest.getNativeRequest()).getAttribute("accessToken");
27+
28+
return new Jwt(UUID.fromString(decodedJWT.getClaim("userId").asString()),
29+
new JwtScopes(decodedJWT.getClaim("scopes").asList(String.class)));
2430
}
2531

2632
@Override
2733
public boolean supportsParameter(MethodParameter parameter) {
28-
return parameter.getParameterType().equals(DecodedJWT.class);
34+
return parameter.getParameterType().equals(Jwt.class);
2935
}
3036

3137
@Override

0 commit comments

Comments
 (0)