Search in sources :

Example 1 with PerryException

use of gov.ca.cwds.rest.api.domain.PerryException in project perry by ca-cwds.

the class LoginServiceImpl method invalidate.

@Override
public void invalidate(String perryToken) {
    OAuth2AccessToken accessToken = tokenService.deleteToken(perryToken);
    try {
        HttpHeaders headers = new HttpHeaders();
        MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
        params.add("token", accessToken.getValue());
        params.add("token_type_hint", "access_token");
        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
        HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<>(params, headers);
        restClientService.clientRestTemplate().postForEntity(revokeTokenUri, request, String.class).getBody();
    } catch (Exception e) {
        throw new PerryException("Token Revocation problem for revokeTokenUri = " + revokeTokenUri, e);
    }
}
Also used : HttpHeaders(org.springframework.http.HttpHeaders) HttpEntity(org.springframework.http.HttpEntity) LinkedMultiValueMap(org.springframework.util.LinkedMultiValueMap) OAuth2AccessToken(org.springframework.security.oauth2.common.OAuth2AccessToken) PerryException(gov.ca.cwds.rest.api.domain.PerryException) MultiValueMap(org.springframework.util.MultiValueMap) LinkedMultiValueMap(org.springframework.util.LinkedMultiValueMap) PerryException(gov.ca.cwds.rest.api.domain.PerryException)

Example 2 with PerryException

use of gov.ca.cwds.rest.api.domain.PerryException in project perry by ca-cwds.

the class TokenService method getPerryTokenByAccessCode.

public String getPerryTokenByAccessCode(String accessCode) {
    List<PerryTokenEntity> tokens = tokenRepository.findByAccessCode(accessCode);
    if (tokens.isEmpty()) {
        throw new PerryException("Access Code: " + accessCode + " is not found");
    }
    if (tokens.size() > 1) {
        tokenRepository.delete(tokens);
        throw new PerryException("Access Code: " + accessCode + " is not unique");
    }
    PerryTokenEntity perryTokenEntity = tokens.get(0);
    if (new Date().after(DateUtils.addMinutes(perryTokenEntity.getCreatedDate(), properties.getJwt().getTimeout()))) {
        tokenRepository.delete(perryTokenEntity);
        throw new PerryException("Access Code: " + accessCode + " is expired");
    }
    perryTokenEntity.setAccessCode(null);
    return perryTokenEntity.getToken();
}
Also used : PerryTokenEntity(gov.ca.cwds.data.reissue.model.PerryTokenEntity) PerryException(gov.ca.cwds.rest.api.domain.PerryException) Date(java.util.Date)

Aggregations

PerryException (gov.ca.cwds.rest.api.domain.PerryException)2 PerryTokenEntity (gov.ca.cwds.data.reissue.model.PerryTokenEntity)1 Date (java.util.Date)1 HttpEntity (org.springframework.http.HttpEntity)1 HttpHeaders (org.springframework.http.HttpHeaders)1 OAuth2AccessToken (org.springframework.security.oauth2.common.OAuth2AccessToken)1 LinkedMultiValueMap (org.springframework.util.LinkedMultiValueMap)1 MultiValueMap (org.springframework.util.MultiValueMap)1