80 if (client == null || ticket == null) {
81 logger.info(
"Client or ticket not found: " + clientId +
" :: " + ticketValue);
82 m.addAttribute(HttpCodeView.CODE, HttpStatus.NOT_FOUND);
83 return HttpCodeView.VIEWNAME;
89 Set<Claim> claimsSupplied = Sets.newHashSet(ticket.getClaimsSupplied());
91 String issuer = auth.getIssuer();
92 UserInfo userInfo = auth.getUserInfo();
94 claimsSupplied.add(
mkClaim(issuer,
"sub",
new JsonPrimitive(auth.getSub())));
95 if (userInfo.getEmail() != null) {
96 claimsSupplied.add(
mkClaim(issuer,
"email",
new JsonPrimitive(userInfo.getEmail())));
98 if (userInfo.getEmailVerified() != null) {
99 claimsSupplied.add(
mkClaim(issuer,
"email_verified",
new JsonPrimitive(userInfo.getEmailVerified())));
101 if (userInfo.getPhoneNumber() != null) {
102 claimsSupplied.add(
mkClaim(issuer,
"phone_number",
new JsonPrimitive(auth.getUserInfo().getPhoneNumber())));
104 if (userInfo.getPhoneNumberVerified() != null) {
105 claimsSupplied.add(
mkClaim(issuer,
"phone_number_verified",
new JsonPrimitive(auth.getUserInfo().getPhoneNumberVerified())));
107 if (userInfo.getPreferredUsername() != null) {
108 claimsSupplied.add(
mkClaim(issuer,
"preferred_username",
new JsonPrimitive(auth.getUserInfo().getPreferredUsername())));
110 if (userInfo.getProfile() != null) {
111 claimsSupplied.add(
mkClaim(issuer,
"profile",
new JsonPrimitive(auth.getUserInfo().getProfile())));
114 ticket.setClaimsSupplied(claimsSupplied);
118 if (Strings.isNullOrEmpty(redirectUri)) {
119 if (client.getClaimsRedirectUris().size() == 1) {
120 redirectUri = client.getClaimsRedirectUris().iterator().next();
121 logger.info(
"No redirect URI passed in, using registered value: " + redirectUri);
123 throw new RedirectMismatchException(
"Unable to find redirect URI and none passed in.");
126 if (!client.getClaimsRedirectUris().contains(redirectUri)) {
127 throw new RedirectMismatchException(
"Claims redirect did not match the registered values.");
131 UriComponentsBuilder
template = UriComponentsBuilder.fromUriString(redirectUri);
132 template.queryParam(
"authorization_state",
"claims_submitted");
133 if (!Strings.isNullOrEmpty(state)) {
134 template.queryParam(
"state", state);
137 String uriString =
template.toUriString();
138 logger.info(
"Redirecting to " + uriString);
140 return "redirect:" + uriString;
static final Logger logger
Definition: ClaimsCollectionEndpoint.java:59
PermissionService permissionService
Definition: ClaimsCollectionEndpoint.java:67
PermissionTicket getByTicket(String ticket)
ClientDetailsEntityService clientService
Definition: ClaimsCollectionEndpoint.java:64
PermissionTicket updateTicket(PermissionTicket ticket)
ClientDetailsEntity loadClientByClientId(String clientId)
Claim mkClaim(String issuer, String name, JsonElement value)
Definition: ClaimsCollectionEndpoint.java:144