Skip to content

Commit

Permalink
Add get jwt token method.
Browse files Browse the repository at this point in the history
  • Loading branch information
czetsuya committed Jan 5, 2020
1 parent 68003c3 commit 2c85b6a
Showing 1 changed file with 46 additions and 30 deletions.
76 changes: 46 additions & 30 deletions src/main/java/com/broodcamp/utils/SecurityContextUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
import java.util.HashSet;
import java.util.Set;

import org.keycloak.KeycloakPrincipal;
import org.keycloak.KeycloakSecurityContext;
import org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContext;
import org.springframework.security.core.context.SecurityContextHolder;
Expand All @@ -18,43 +21,56 @@
@Slf4j
public class SecurityContextUtils {

private static final String ANONYMOUS = "anonymous";
private static final String ANONYMOUS = "anonymous";

private SecurityContextUtils() {
}
private SecurityContextUtils() {
}

public static String getUserName() {
SecurityContext securityContext = SecurityContextHolder.getContext();
Authentication authentication = securityContext.getAuthentication();
String username = ANONYMOUS;
public static String getUserName() {

SecurityContext securityContext = SecurityContextHolder.getContext();
Authentication authentication = securityContext.getAuthentication();
String username = ANONYMOUS;

if (null != authentication) {
if (authentication.getPrincipal() instanceof UserDetails) {
UserDetails springSecurityUser = (UserDetails) authentication.getPrincipal();
username = springSecurityUser.getUsername();
if (null != authentication) {
if (authentication.getPrincipal() instanceof UserDetails) {
UserDetails springSecurityUser = (UserDetails) authentication.getPrincipal();
username = springSecurityUser.getUsername();

} else if (authentication.getPrincipal() instanceof String) {
username = (String) authentication.getPrincipal();
} else if (authentication.getPrincipal() instanceof String) {
username = (String) authentication.getPrincipal();

} else {
log.debug("User details not found in Security Context");
}
} else {
log.debug("User details not found in Security Context");
}

} else {
log.debug("Request not authenticated, hence no user name available");
}
} else {
log.debug("Request not authenticated, hence no user name available");
}

return username;
}
return username;
}

public static Set<String> getUserRoles() {
SecurityContext securityContext = SecurityContextHolder.getContext();
Authentication authentication = securityContext.getAuthentication();
Set<String> roles = new HashSet<>();
public static Set<String> getUserRoles() {

SecurityContext securityContext = SecurityContextHolder.getContext();
Authentication authentication = securityContext.getAuthentication();
Set<String> roles = new HashSet<>();

if (null != authentication) {
authentication.getAuthorities().forEach(e -> roles.add(e.getAuthority()));
}
return roles;
}
if (null != authentication) {
authentication.getAuthorities().forEach(e -> roles.add(e.getAuthority()));
}

return roles;
}

@SuppressWarnings("unchecked")
public static String getJWTToken() {

KeycloakAuthenticationToken authentication = (KeycloakAuthenticationToken) SecurityContextHolder.getContext().getAuthentication();

KeycloakPrincipal<KeycloakSecurityContext> keycloakPrincipal = (KeycloakPrincipal<KeycloakSecurityContext>) authentication.getPrincipal();

return keycloakPrincipal.getKeycloakSecurityContext().getTokenString();
}
}

0 comments on commit 2c85b6a

Please sign in to comment.