...
| Bloc de code |
|---|
public class CasService {
protected Logger log = Logger.getLogger(CasService.class);
RestTemplate restTemplate;
String casSsoSessionsUrl;
String casDestroySsoSessionsUrl;
public void setRestTemplate(RestTemplate restTemplate) {
this.restTemplate = restTemplate;
}
public void setCasUrl(String casUrl) {
casSsoSessionsUrl = casUrl + "/actuator/ssoSessions?type=ALLDIRECT";
casDestroySsoSessionsUrl = casUrl + "/actuator/ssoSessions/{ticketGrantingTicket}";
}
public synchronized String destroySsoSessions(String login) {
String message = "";
CasSsoSessions casSsoSessions = restTemplate.getForObject(casSsoSessionsUrl, CasSsoSessions.class);
for(CasSsoSession casSsoSession : casSsoSessions.activeSsoSessions) {
if(login.equals(casSsoSession.principal)) {
log.info(String.format("Call Cas Destroy ticket %s for user %s", casSsoSession.principal, casSsoSession.ticketGrantingTicket));
Map<String, String> urlVariables = new HashMap<String, String>();
urlVariables.put("ticketGrantingTicket", casSsoSession.ticketGrantingTicket);
CasSsoSessionDestroyResponse casSsoSessionDestroyResponse = restTemplate.postForObject(casDestroySsoSessionsUrl, null, CasSsoSessionDestroyResponse.class, urlVariables);
log.info(String.format("CAS response : %s", casSsoSessionDestroyResponse.toString()));
message += casSsoSessionDestroyResponse.toString() + "\n";
}
}
return message;
}
} |
...