Package de.trustable.ca3s.core.security
Class OIDCRestService
- java.lang.Object
-
- de.trustable.ca3s.core.security.OIDCRestService
-
@Service public class OIDCRestService extends Object
-
-
Constructor Summary
Constructors Constructor Description OIDCRestService(String[] rolesUserArr, String[] rolesDomainRAArr, String[] rolesRAArr, String[] rolesAdminArr, String clientId, String clientSecret, String availableLanguages, UserPreferenceRepository userPreferenceRepository, UserRepository userRepository, AuthorityRepository authorityRepository, org.springframework.security.crypto.password.PasswordEncoder passwordEncoder)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description StringexchangeCodeToToken(String keycloakTokenUri, String authCode, String redirectUri)login by using username and password to oidc, and capturing token on response bodySet<org.springframework.security.core.GrantedAuthority>getAuthorities(KeycloakUserDetails keycloakUserDetails)KeycloakUserDetailsgetUserInfo(String keycloakUserInfoUrl, String token)KeycloakUserDetailsgetUserInfo(org.keycloak.representations.AccessToken token)@NotNull StringretrieveUserName(KeycloakUserDetails keycloakUserDetails)
-
-
-
Constructor Detail
-
OIDCRestService
public OIDCRestService(@Value("${ca3s.oidc.roles.user:USER}") String[] rolesUserArr, @Value("${ca3s.oidc.roles.domainra:DOMAIN_RA}") String[] rolesDomainRAArr, @Value("${ca3s.oidc.roles.ra:RA}") String[] rolesRAArr, @Value("${ca3s.oidc.roles.admin:ADMIN}") String[] rolesAdminArr, @Value("${ca3s.oidc.client-id:#{null}}") String clientId, @Value("${ca3s.oidc.client-secret:clientSecret}") String clientSecret, @Value("${ca3s.ui.languages:en,de,pl}") String availableLanguages, UserPreferenceRepository userPreferenceRepository, UserRepository userRepository, AuthorityRepository authorityRepository, org.springframework.security.crypto.password.PasswordEncoder passwordEncoder)
-
-
Method Detail
-
exchangeCodeToToken
public String exchangeCodeToToken(String keycloakTokenUri, String authCode, String redirectUri) throws com.fasterxml.jackson.core.JsonProcessingException, UnsupportedEncodingException
login by using username and password to oidc, and capturing token on response body- Parameters:
username-password-- Returns:
- public KeycloakUserId login(String keycloakTokenUri, String username, String password) throws JsonProcessingException {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
MultiValueMap
map = new LinkedMultiValueMap<>(); map.add("username",username); map.add("password",password); map.add("client_id",clientId); map.add("grant_type",grantType); map.add("client_secret",clientSecret); map.add("scope",scope); LOG.info("map: {}", map); RestTemplate restTemplate = new RestTemplate(); HttpEntity > request = new HttpEntity<>(map, headers); String userId = restTemplate.postForObject(keycloakTokenUri, request, String.class); LOG.info("userId: {}", userId); ObjectMapper objectMapper = new ObjectMapper(); objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); return objectMapper.readValue(userId, KeycloakUserId.class); } - Throws:
com.fasterxml.jackson.core.JsonProcessingExceptionUnsupportedEncodingException
-
getUserInfo
@Transactional public KeycloakUserDetails getUserInfo(String keycloakUserInfoUrl, String token) throws com.fasterxml.jackson.core.JsonProcessingException
- Throws:
com.fasterxml.jackson.core.JsonProcessingException
-
getUserInfo
@Transactional public KeycloakUserDetails getUserInfo(org.keycloak.representations.AccessToken token)
-
retrieveUserName
@NotNull public @NotNull String retrieveUserName(KeycloakUserDetails keycloakUserDetails)
-
getAuthorities
public Set<org.springframework.security.core.GrantedAuthority> getAuthorities(KeycloakUserDetails keycloakUserDetails)
-
-