/*
* oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.
*
* Copyright (c) 2014, Gluu
*/
package org.xdi.oxauth.client;
import org.apache.commons.lang.StringUtils;
import org.codehaus.jettison.json.JSONArray;
import org.codehaus.jettison.json.JSONException;
import org.codehaus.jettison.json.JSONObject;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Represents an OpenId Configuration received from the authorization server.
*
* @author Javier Rojas Blum
* @version April 26, 2017
*/
public class OpenIdConfigurationResponse extends BaseResponse implements Serializable {
private String issuer;
private String authorizationEndpoint;
private String tokenEndpoint;
private String userInfoEndpoint;
private String clientInfoEndpoint;
private String checkSessionIFrame;
private String endSessionEndpoint;
private String jwksUri;
private String registrationEndpoint;
private String idGenerationEndpoint;
private String introspectionEndpoint;
private List<String> scopesSupported;
private List<String> responseTypesSupported;
private List<String> grantTypesSupported;
private List<String> acrValuesSupported;
private List<String> subjectTypesSupported;
private List<String> userInfoSigningAlgValuesSupported;
private List<String> userInfoEncryptionAlgValuesSupported;
private List<String> userInfoEncryptionEncValuesSupported;
private List<String> idTokenSigningAlgValuesSupported;
private List<String> idTokenEncryptionAlgValuesSupported;
private List<String> idTokenEncryptionEncValuesSupported;
private List<String> requestObjectSigningAlgValuesSupported;
private List<String> requestObjectEncryptionAlgValuesSupported;
private List<String> requestObjectEncryptionEncValuesSupported;
private List<String> tokenEndpointAuthMethodsSupported;
private List<String> tokenEndpointAuthSigningAlgValuesSupported;
private List<String> displayValuesSupported;
private List<String> claimTypesSupported;
private List<String> claimsSupported;
private String serviceDocumentation;
private List<String> claimsLocalesSupported;
private List<String> uiLocalesSupported;
private Boolean claimsParameterSupported;
private Boolean requestParameterSupported;
private Boolean requestUriParameterSupported;
private Boolean requireRequestUriRegistration;
private Boolean frontChannelLogoutSupported;
private Boolean frontChannelLogoutSessionSupported;
private String opPolicyUri;
private String opTosUri;
private Map<String, List<String>> scopeToClaimsMapping = new HashMap<String, List<String>>();
/**
* Constructs an OpenID Configuration Response.
*
* @param status The response status code.
*/
public OpenIdConfigurationResponse(int status) {
super(status);
scopesSupported = new ArrayList<String>();
responseTypesSupported = new ArrayList<String>();
grantTypesSupported = new ArrayList<String>();
acrValuesSupported = new ArrayList<String>();
subjectTypesSupported = new ArrayList<String>();
userInfoSigningAlgValuesSupported = new ArrayList<String>();
userInfoEncryptionAlgValuesSupported = new ArrayList<String>();
userInfoEncryptionEncValuesSupported = new ArrayList<String>();
idTokenSigningAlgValuesSupported = new ArrayList<String>();
idTokenEncryptionAlgValuesSupported = new ArrayList<String>();
idTokenEncryptionEncValuesSupported = new ArrayList<String>();
requestObjectSigningAlgValuesSupported = new ArrayList<String>();
requestObjectEncryptionAlgValuesSupported = new ArrayList<String>();
requestObjectEncryptionEncValuesSupported = new ArrayList<String>();
tokenEndpointAuthMethodsSupported = new ArrayList<String>();
tokenEndpointAuthSigningAlgValuesSupported = new ArrayList<String>();
displayValuesSupported = new ArrayList<String>();
claimTypesSupported = new ArrayList<String>();
claimsSupported = new ArrayList<String>();
claimsLocalesSupported = new ArrayList<String>();
uiLocalesSupported = new ArrayList<String>();
}
public static Map<String, List<String>> parseScopeToClaimsMapping(String p_scopeToClaimsJson) throws JSONException {
return parseScopeToClaimsMapping(new JSONArray(p_scopeToClaimsJson));
}
public static Map<String, List<String>> parseScopeToClaimsMapping(JSONArray p_jsonArray) throws JSONException {
final Map<String, List<String>> map = new HashMap<String, List<String>>();
if (p_jsonArray != null) {
for (int i = 0; i < p_jsonArray.length(); i++) {
final JSONObject obj = p_jsonArray.getJSONObject(i);
final String scope = obj.names().getString(0);
final JSONArray claimsArray = obj.getJSONArray(scope);
final List<String> claimsList = new ArrayList<String>();
for (int j = 0; j < claimsArray.length(); j++) {
final String claim = claimsArray.getString(j);
if (StringUtils.isNotBlank(claim)) {
claimsList.add(claim);
}
}
map.put(scope, claimsList);
}
}
return map;
}
/**
* Gets scopes to claims map.
*
* @return scopes to claims map
* @deprecated this parameter will be moved from /.well-known/openid-configuration to /.well-known/gluu-configuration
*/
@Deprecated
public Map<String, List<String>> getScopeToClaimsMapping() {
return scopeToClaimsMapping;
}
/**
* Sets scope to claim map.
*
* @param p_scopeToClaimsMapping scope to claim map
* @deprecated this parameter will be moved from /.well-known/openid-configuration to /.well-known/gluu-configuration
*/
@Deprecated
public void setScopeToClaimsMapping(Map<String, List<String>> p_scopeToClaimsMapping) {
scopeToClaimsMapping = p_scopeToClaimsMapping;
}
/**
* Returns the issuer identifier.
*
* @return The issuer identifier.
*/
public String getIssuer() {
return issuer;
}
/**
* Sets the issuer identifier.
*
* @param issuer The issuer identifier.
*/
public void setIssuer(String issuer) {
this.issuer = issuer;
}
/**
* Returns the URL of the Authentication and Authorization endpoint.
*
* @return The URL of the Authentication and Authorization endpoint.
*/
public String getAuthorizationEndpoint() {
return authorizationEndpoint;
}
/**
* Sets the URL of the Authentication and Authorization endpoint.
*
* @param authorizationEndpoint The URL of the Authentication and Authorization endpoint.
*/
public void setAuthorizationEndpoint(String authorizationEndpoint) {
this.authorizationEndpoint = authorizationEndpoint;
}
/**
* Returns the URL of the Token endpoint.
*
* @return The URL of the Token endpoint.
*/
public String getTokenEndpoint() {
return tokenEndpoint;
}
/**
* Sets the URL of the Token endpoint.
*
* @param tokenEndpoint The URL of the Token endpoint.
*/
public void setTokenEndpoint(String tokenEndpoint) {
this.tokenEndpoint = tokenEndpoint;
}
/**
* Returns the URL of the User Info endpoint.
*
* @return The URL of the User Info endpoint.
*/
public String getUserInfoEndpoint() {
return userInfoEndpoint;
}
/**
* Sets the URL for the User Info endpoint.
*
* @param userInfoEndpoint The URL for the User Info endpoint.
*/
public void setUserInfoEndpoint(String userInfoEndpoint) {
this.userInfoEndpoint = userInfoEndpoint;
}
/**
* Returns the URL of the Client Info endpoint.
*
* @return The URL of the Client Info endpoint.
*/
public String getClientInfoEndpoint() {
return clientInfoEndpoint;
}
/**
* Sets the URL for the Client Info endpoint.
*
* @param clientInfoEndpoint The URL for the Client Info endpoint.
*/
public void setClientInfoEndpoint(String clientInfoEndpoint) {
this.clientInfoEndpoint = clientInfoEndpoint;
}
/**
* Returns the URL of an OP endpoint that provides a page to support
* cross-origin communications for session state information with the RP
* client.
*
* @return The Check Session iFrame URL.
*/
public String getCheckSessionIFrame() {
return checkSessionIFrame;
}
/**
* Sets the URL of an OP endpoint that provides a page to support
* cross-origin communications for session state information with the RP
* client.
*
* @param checkSessionIFrame The Check Session iFrame URL.
*/
public void setCheckSessionIFrame(String checkSessionIFrame) {
this.checkSessionIFrame = checkSessionIFrame;
}
/**
* Returns the URL of the End Session endpoint.
*
* @return The URL of the End Session endpoint.
*/
public String getEndSessionEndpoint() {
return endSessionEndpoint;
}
/**
* Sets the URL of the End Session endpoint.
*
* @param endSessionEndpoint The URL of the End Session endpoint.
*/
public void setEndSessionEndpoint(String endSessionEndpoint) {
this.endSessionEndpoint = endSessionEndpoint;
}
/**
* Returns the URL of the OP's JSON Web Key Set (JWK) document that contains
* the Server's signing key(s) that are used for signing responses to the
* Client. The JWK Set may also contain the Server's encryption key(s) that
* are used by the Client to encrypt requests to the Server.
*
* @return The URL of the OP's JSON Web Key Set (JWK) document.
*/
public String getJwksUri() {
return jwksUri;
}
/**
* Sets the URL of the OP's JSON Web Key Set (JWK) document that contains
* the Server's signing key(s) that are used for signing responses to the
* Client. The JWK Set may also contain the Server's encryption key(s) that
* are used by the Client to encrypt requests to the Server.
*
* @param jwksUri The URL of the OP's JSON Web Key Set (JWK) document.
*/
public void setJwksUri(String jwksUri) {
this.jwksUri = jwksUri;
}
/**
* Returns the URL of the Dynamic Client Registration endpoint.
*
* @return The URL of the Dynamic Client Registration endpoint.
*/
public String getRegistrationEndpoint() {
return registrationEndpoint;
}
/**
* Sets the URL of the Dynamic Client Registration endpoint.
*
* @param registrationEndpoint The URL of the Dynamic Client Registration endpoint.
*/
public void setRegistrationEndpoint(String registrationEndpoint) {
this.registrationEndpoint = registrationEndpoint;
}
/**
* @deprecated this parameter will be moved from /.well-known/openid-configuration to /.well-known/gluu-configuration
*/
@Deprecated
public String getIdGenerationEndpoint() {
return idGenerationEndpoint;
}
/**
* @deprecated this parameter will be moved from /.well-known/openid-configuration to /.well-known/gluu-configuration
*/
@Deprecated
public void setIdGenerationEndpoint(String p_idGenerationEndpoint) {
idGenerationEndpoint = p_idGenerationEndpoint;
}
/**
* @deprecated this parameter will be moved from /.well-known/openid-configuration to /.well-known/gluu-configuration
*/
@Deprecated
public String getIntrospectionEndpoint() {
return introspectionEndpoint;
}
/**
* @deprecated this parameter will be moved from /.well-known/openid-configuration to /.well-known/gluu-configuration
*/
@Deprecated
public void setIntrospectionEndpoint(String p_introspectionEndpoint) {
introspectionEndpoint = p_introspectionEndpoint;
}
/**
* Returns a list of the OAuth 2.0 scopes that the server supports.
*
* @return A list of the OAuth 2.0 scopes that the server supports.
*/
public List<String> getScopesSupported() {
return scopesSupported;
}
/**
* Sets a list of the OAuth 2.0 scopes that the server supports.
*
* @param scopesSupported A list of the OAuth 2.0 scopes that the server supports.
*/
public void setScopesSupported(List<String> scopesSupported) {
this.scopesSupported = scopesSupported;
}
/**
* Returns a list of the response types that the server supports.
*
* @return A list of the response types that the server supports.
*/
public List<String> getResponseTypesSupported() {
return responseTypesSupported;
}
/**
* Sets a list of the response types that the server supports.
*
* @param responseTypesSupported A list of the response types that the server supports.
*/
public void setResponseTypesSupported(List<String> responseTypesSupported) {
this.responseTypesSupported = responseTypesSupported;
}
/**
* Returns a list of the OAuth 2.0 grant type values that this server
* supports.
*
* @return A list of the OAuth 2.0 grant type values that this server
* supports.
*/
public List<String> getGrantTypesSupported() {
return grantTypesSupported;
}
/**
* Sets a list of the OAuth 2.0 grant type values that this server supports.
*
* @param grantTypesSupported A list of the OAuth 2.0 grant type values that this server
* supports.
*/
public void setGrantTypesSupported(List<String> grantTypesSupported) {
this.grantTypesSupported = grantTypesSupported;
}
/**
* Returns a list of the Authentication Context Class References that this
* server supports.
*
* @return A list of the Authentication Context Class References
*/
public List<String> getAcrValuesSupported() {
return acrValuesSupported;
}
/**
* Sets a list of the Authentication Context Class References that this
* server supports.
*
* @param acrValuesSupported A list of the Authentication Context Class References
*/
public void setAcrValuesSupported(List<String> acrValuesSupported) {
this.acrValuesSupported = acrValuesSupported;
}
/**
* Returns a list of the subject identifier types that this server supports.
* Valid types include pairwise and public.
*
* @return A list of the subject identifier types that this server supports.
*/
public List<String> getSubjectTypesSupported() {
return subjectTypesSupported;
}
/**
* Sets a list of the subject identifier types that this server supports.
* Valid types include pairwise and public.
*
* @param subjectTypesSupported A list of the subject identifier types that this server
* supports.
*/
public void setSubjectTypesSupported(List<String> subjectTypesSupported) {
this.subjectTypesSupported = subjectTypesSupported;
}
/**
* Returns a list of the JWS signing algorithms (alg values JWA) supported
* by the UserInfo Endpoint to encode the claims in a JWT
*
* @return A list of the JWS signing algorithms.
*/
public List<String> getUserInfoSigningAlgValuesSupported() {
return userInfoSigningAlgValuesSupported;
}
/**
* Sets a list of the JWS signing algorithms (alg values JWA) supported by
* the UserInfo Endpoint to encode the claims in a JWT
*
* @param userInfoSigningAlgValuesSupported A list of the JWS signing algorithms.
*/
public void setUserInfoSigningAlgValuesSupported(List<String> userInfoSigningAlgValuesSupported) {
this.userInfoSigningAlgValuesSupported = userInfoSigningAlgValuesSupported;
}
/**
* Returns a list of the JWE encryption algorithms (alg values JWA)
* supported by the UserInfo Endpoint to encode the claims in a JWT.
*
* @return A list of the JWE encryption algorithms.
*/
public List<String> getUserInfoEncryptionAlgValuesSupported() {
return userInfoEncryptionAlgValuesSupported;
}
/**
* Sets a list of the JWE encryption algorithms (alg values JWA) supported
* by the UserInfo Endpoint to encode the claims in a JWT.
*
* @param userInfoEncryptionAlgValuesSupported A list of the JWE encryption algorithms.
*/
public void setUserInfoEncryptionAlgValuesSupported(List<String> userInfoEncryptionAlgValuesSupported) {
this.userInfoEncryptionAlgValuesSupported = userInfoEncryptionAlgValuesSupported;
}
/**
* Returns a list of the JWE encryption algorithms (enc values JWA)
* supported by the UserInfo Endpoint to encode the claims in a JWT.
*
* @return A list of the JWE encryption algorithms.
*/
public List<String> getUserInfoEncryptionEncValuesSupported() {
return userInfoEncryptionEncValuesSupported;
}
/**
* Sets a list of the JWE encryption algorithms (enc values JWA) supported
* by the UserInfo Endpoint to encode the claims in a JWT.
*
* @param userInfoEncryptionEncValuesSupported A list of the JWE encryption algorithms.
*/
public void setUserInfoEncryptionEncValuesSupported(List<String> userInfoEncryptionEncValuesSupported) {
this.userInfoEncryptionEncValuesSupported = userInfoEncryptionEncValuesSupported;
}
/**
* Returns a list of the JWS signing algorithms (alg values) supported by
* the Authorization Server for the ID Token to encode the claims in a JWT.
*
* @return A list of the JWS signing algorithms.
*/
public List<String> getIdTokenSigningAlgValuesSupported() {
return idTokenSigningAlgValuesSupported;
}
/**
* Sets a list of the JWS signing algorithms (alg values) supported by the
* Authorization Server for the ID Token to encode the claims in a JWT.
*
* @param idTokenSigningAlgValuesSupported A list of the JWS signing algorithms.
*/
public void setIdTokenSigningAlgValuesSupported(List<String> idTokenSigningAlgValuesSupported) {
this.idTokenSigningAlgValuesSupported = idTokenSigningAlgValuesSupported;
}
/**
* Returns a list of the JWE encryption algorithms (alg values) supported by
* the Authorization Server for the ID Token to encode the claims in a JWT.
*
* @return A list of the JWE encryption algorithms.
*/
public List<String> getIdTokenEncryptionAlgValuesSupported() {
return idTokenEncryptionAlgValuesSupported;
}
/**
* Sets a list of the JWE encryption algorithms (alg values) supported by
* the Authorization Server for the ID Token to encode the claims in a JWT.
*
* @param idTokenEncryptionAlgValuesSupported A list of the JWE encryption algorithms.
*/
public void setIdTokenEncryptionAlgValuesSupported(List<String> idTokenEncryptionAlgValuesSupported) {
this.idTokenEncryptionAlgValuesSupported = idTokenEncryptionAlgValuesSupported;
}
/**
* Returns a list of the JWE encryption algorithms (enc values) supported by
* the Authorization Server for the ID Token to encode the claims in a JWT.
*
* @return A list of the JWE encryption algorithms.
*/
public List<String> getIdTokenEncryptionEncValuesSupported() {
return idTokenEncryptionEncValuesSupported;
}
/**
* Sets a list of the JWE encryption algorithms (enc values) supported by
* the Authorization Server for the ID Token to encode the claims in a JWT.
*
* @param idTokenEncryptionEncValuesSupported A list of the JWE encryption algorithms.
*/
public void setIdTokenEncryptionEncValuesSupported(List<String> idTokenEncryptionEncValuesSupported) {
this.idTokenEncryptionEncValuesSupported = idTokenEncryptionEncValuesSupported;
}
/**
* Returns a list of the JWS signing algorithms (alg values) supported by
* the Authorization Server for the OpenID Request Object.
*
* @return A list of the JWS signing algorithms.
*/
public List<String> getRequestObjectSigningAlgValuesSupported() {
return requestObjectSigningAlgValuesSupported;
}
/**
* Sets a list of the JWS signing algorithms (alg values) supported by the
* Authorization Server for the OpenID Request Object.
*
* @param requestObjectSigningAlgValuesSupported A list of the JWS signing algorithms.
*/
public void setRequestObjectSigningAlgValuesSupported(List<String> requestObjectSigningAlgValuesSupported) {
this.requestObjectSigningAlgValuesSupported = requestObjectSigningAlgValuesSupported;
}
/**
* Returns a list of the JWE encryption algorithms (alg values) supported by
* the Authorization Server for the OpenID Request Object.
*
* @return A list of the JWE encryption algorithms.
*/
public List<String> getRequestObjectEncryptionAlgValuesSupported() {
return requestObjectEncryptionAlgValuesSupported;
}
/**
* Sets a list of the JWE encryption algorithms (alg values) supported by
* the Authorization Server for the OpenID Request Object.
*
* @param requestObjectEncryptionAlgValuesSupported A list of the JWE encryption algorithms.
*/
public void setRequestObjectEncryptionAlgValuesSupported(List<String> requestObjectEncryptionAlgValuesSupported) {
this.requestObjectEncryptionAlgValuesSupported = requestObjectEncryptionAlgValuesSupported;
}
/**
* Returns a list of the JWE encryption algorithms (enc values) supported by
* the Authorization Server for the OpenID Request Object.
*
* @return A list of the JWE encryption algorithms.
*/
public List<String> getRequestObjectEncryptionEncValuesSupported() {
return requestObjectEncryptionEncValuesSupported;
}
/**
* Sets a list of the JWE encryption algorithms (enc values) supported by
* the Authorization Server for the OpenID Request Object.
*
* @param requestObjectEncryptionEncValuesSupported A list of the JWE encryption algorithms.
*/
public void setRequestObjectEncryptionEncValuesSupported(List<String> requestObjectEncryptionEncValuesSupported) {
this.requestObjectEncryptionEncValuesSupported = requestObjectEncryptionEncValuesSupported;
}
/**
* Returns a list of authentication types supported by this Token Endpoint.
* The options are client_secret_post, client_secret_basic,
* client_secret_jwt, and private_key_jwt. Other authentication types may be
* defined by extension. If unspecified or omitted, the default is
* client_secret_basic, the HTTP Basic Authentication Scheme.
*
* @return A list of authentication types.
*/
public List<String> getTokenEndpointAuthMethodsSupported() {
return tokenEndpointAuthMethodsSupported;
}
/**
* Sets a list of authentication types supported by this Token Endpoint. The
* options are client_secret_post, client_secret_basic, client_secret_jwt,
* and private_key_jwt. Other authentication types may be defined by
* extension. If unspecified or omitted, the default is client_secret_basic,
* the HTTP Basic Authentication Scheme.
*
* @param tokenEndpointAuthMethodsSupported A list of authentication types.
*/
public void setTokenEndpointAuthMethodsSupported(List<String> tokenEndpointAuthMethodsSupported) {
this.tokenEndpointAuthMethodsSupported = tokenEndpointAuthMethodsSupported;
}
/**
* Returns a list of the JWS signing algorithms (alg values) supported by
* the Token Endpoint for the private_key_jwt and client_secret_jwt methods
* to encode the JWT. Servers SHOULD support RS256.
*
* @return A list of the JWS signing algorithms.
*/
public List<String> getTokenEndpointAuthSigningAlgValuesSupported() {
return tokenEndpointAuthSigningAlgValuesSupported;
}
/**
* Sets a list of the JWS signing algorithms (alg values) supported by the
* Token Endpoint for the private_key_jwt and client_secret_jwt methods to
* encode the JWT. Servers SHOULD support RS256.
*
* @param tokenEndpointAuthSigningAlgValuesSupported A list of the JWS signing algorithms.
*/
public void setTokenEndpointAuthSigningAlgValuesSupported(List<String> tokenEndpointAuthSigningAlgValuesSupported) {
this.tokenEndpointAuthSigningAlgValuesSupported = tokenEndpointAuthSigningAlgValuesSupported;
}
/**
* Returns a list of the display parameter values that the OpenID Provider
* supports.
*
* @return A list of the display parameter values.
*/
public List<String> getDisplayValuesSupported() {
return displayValuesSupported;
}
/**
* Sets a list of the display parameter values that the OpenID Provider
* supports.
*
* @param displayValuesSupported A list of the display parameter values.
*/
public void setDisplayValuesSupported(List<String> displayValuesSupported) {
this.displayValuesSupported = displayValuesSupported;
}
/**
* Returns a list of the claim types that the OpenID Provider supports. If
* not specified, the implementation supports only normal claims.
*
* @return A list of the claim types.
*/
public List<String> getClaimTypesSupported() {
return claimTypesSupported;
}
/**
* Sets a list of the claim types that the OpenID Provider supports. If not
* specified, the implementation supports only normal claims.
*
* @param claimTypesSupported A list of the claim types.
*/
public void setClaimTypesSupported(List<String> claimTypesSupported) {
this.claimTypesSupported = claimTypesSupported;
}
/**
* Returns a list of the Claim Names of the Claims that the OpenID Provider
* may be able to supply values for. Note that for privacy or other reasons,
* this may not be an exhaustive list.
*
* @return A list of Claim Names.
*/
public List<String> getClaimsSupported() {
return claimsSupported;
}
/**
* Sets a list of the Claim Names of the Claims that the OpenID Provider may
* be able to supply values for. Note that for privacy or other reasons,
* this may not be an exhaustive list.
*
* @param claimsSupported A list of Claim Names.
*/
public void setClaimsSupported(List<String> claimsSupported) {
this.claimsSupported = claimsSupported;
}
/**
* Returns an URL of a page containing human-readable information that
* developers might want or need to know when using the OpenID Provider. In
* particular, if the OpenID Provider does not support dynamic client
* registration, then information on how to register clients should be
* provided in this documentation.
*
* @return An URL with information for developers.
*/
public String getServiceDocumentation() {
return serviceDocumentation;
}
/**
* Sets an URL of a page containing human-readable information that
* developers might want or need to know when using the OpenID Provider. In
* particular, if the OpenID Provider does not support dynamic client
* registration, then information on how to register clients should be
* provided in this documentation.
*
* @param serviceDocumentation An URL with information for developers.
*/
public void setServiceDocumentation(String serviceDocumentation) {
this.serviceDocumentation = serviceDocumentation;
}
/**
* Returns a list of languages and scripts supported for values in Claims
* being returned.
*
* @return A list of languages and scripts supported for values in Claims
* being returned.
*/
public List<String> getClaimsLocalesSupported() {
return claimsLocalesSupported;
}
/**
* Sets a list of languages and scripts supported for values in Claims being
* returned.
*
* @param claimsLocalesSupported A list of languages and scripts supported for values in Claims
* being returned.
*/
public void setClaimsLocalesSupported(List<String> claimsLocalesSupported) {
this.claimsLocalesSupported = claimsLocalesSupported;
}
/**
* Returns a list of languages and scripts supported for the user interface.
*
* @return A list of languages and scripts supported for the user interface.
*/
public List<String> getUiLocalesSupported() {
return uiLocalesSupported;
}
/**
* Sets a list of languages and scripts supported for the user interface.
*
* @param uiLocalesSupported A list of languages and scripts supported for the user
* interface.
*/
public void setUiLocalesSupported(List<String> uiLocalesSupported) {
this.uiLocalesSupported = uiLocalesSupported;
}
/**
* Returns a Boolean value specifying whether the OP supports use of the
* claims parameter, with <code>true</code> indicating support. If omitted,
* the default value is <code>false</code>.
*
* @return A Boolean value specifying whether the OP supports use of the
* claims parameter.
*/
public Boolean getClaimsParameterSupported() {
return claimsParameterSupported;
}
/**
* Sets a Boolean value specifying whether the OP supports use of the claims
* parameter, with <code>true</code> indicating support. If omitted, the
* default value is <code>false</code>.
*
* @param claimsParameterSupported A Boolean value specifying whether the OP supports use of the
* claims parameter.
*/
public void setClaimsParameterSupported(Boolean claimsParameterSupported) {
this.claimsParameterSupported = claimsParameterSupported;
}
/**
* Returns a Boolean value specifying whether the OP supports use of the
* request parameter, with <code>true</code> indicating support. If omitted,
* the default value is <code>false</code>.
*
* @return A Boolean value specifying whether the OP supports use of the
* request parameter.
*/
public Boolean getRequestParameterSupported() {
return requestParameterSupported;
}
/**
* Sets a Boolean value specifying whether the OP supports use of the
* request parameter, with <code>true</code> indicating support. If omitted,
* the default value is <code>false</code>.
*
* @param requestParameterSupported A Boolean value specifying whether the OP supports use of the
* request parameter.
*/
public void setRequestParameterSupported(Boolean requestParameterSupported) {
this.requestParameterSupported = requestParameterSupported;
}
/**
* Returns a Boolean value specifying whether the OP supports use of the
* request_uri parameter, with <code>true</code> indicating support. If
* omitted, the default value is <code>true</code>.
*
* @return A Boolean value specifying whether the OP supports use of the
* request_uri parameter.
*/
public Boolean getRequestUriParameterSupported() {
return requestUriParameterSupported;
}
/**
* Sets a Boolean value specifying whether the OP supports use of the
* request_uri parameter, with <code>true</code> indicating support. If
* omitted, the default value is <code>true</code>.
*
* @param requestUriParameterSupported A Boolean value specifying whether the OP supports use of the
* request_uri parameter.
*/
public void setRequestUriParameterSupported(Boolean requestUriParameterSupported) {
this.requestUriParameterSupported = requestUriParameterSupported;
}
/**
* Returns a Boolean value specifying whether the OP requires any
* request_uri values used to be pre-registered using the request_uris
* registration parameter. Pre-registration is required when the value is
* <code>true</code>.
*
* @return A Boolean value specifying whether the OP requires any
* request_uri values used to be pre-registered using the
* request_uris registration parameter.
*/
public Boolean getRequireRequestUriRegistration() {
return requireRequestUriRegistration;
}
/**
* Sets a Boolean value specifying whether the OP requires any request_uri
* values used to be pre-registered using the request_uris registration
* parameter. Pre-registration is required when the value is
* <code>true</code>.
*
* @param requireRequestUriRegistration A Boolean value specifying whether the OP requires any
* request_uri values used to be pre-registered using the
* request_uris registration parameter.
*/
public void setRequireRequestUriRegistration(Boolean requireRequestUriRegistration) {
this.requireRequestUriRegistration = requireRequestUriRegistration;
}
/**
* Returns a URL that the OpenID Provider provides to the person registering
* the Client to read about the OP's requirements on how the Relying Party
* may use the data provided by the OP.
*
* @return The OP's policy URI.
*/
public String getOpPolicyUri() {
return opPolicyUri;
}
/**
* Sets a URL that the OpenID Provider provides to the person registering
* the Client to read about the OP's requirements on how the Relying Party
* may use the data provided by the OP.
*
* @param opPolicyUri The OP's policy URI.
*/
public void setOpPolicyUri(String opPolicyUri) {
this.opPolicyUri = opPolicyUri;
}
/**
* Returns a URL that the OpenID Provider provides to the person registering
* the Client to read about OpenID Provider's terms of service.
*
* @return The OP's policy URI.
*/
public String getOpTosUri() {
return opTosUri;
}
/**
* Sets a URL that the OpenID Provider provides to the person registering
* the Client to read about OpenID Provider's terms of service.
*
* @param opTosUri The OP's policy URI.
*/
public void setOpTosUri(String opTosUri) {
this.opTosUri = opTosUri;
}
public Boolean getFrontChannelLogoutSupported() {
return frontChannelLogoutSupported;
}
public void setFrontChannelLogoutSupported(Boolean frontChannelLogoutSupported) {
this.frontChannelLogoutSupported = frontChannelLogoutSupported;
}
public Boolean getFrontChannelLogoutSessionSupported() {
return frontChannelLogoutSessionSupported;
}
public void setFrontChannelLogoutSessionSupported(Boolean frontChannelLogoutSessionSupported) {
this.frontChannelLogoutSessionSupported = frontChannelLogoutSessionSupported;
}
@Override
public String toString() {
return "OpenIdConfigurationResponse{" +
"issuer='" + issuer + '\'' +
", authorizationEndpoint='" + authorizationEndpoint + '\'' +
", tokenEndpoint='" + tokenEndpoint + '\'' +
", userInfoEndpoint='" + userInfoEndpoint + '\'' +
", clientInfoEndpoint='" + clientInfoEndpoint + '\'' +
", checkSessionIFrame='" + checkSessionIFrame + '\'' +
", endSessionEndpoint='" + endSessionEndpoint + '\'' +
", jwksUri='" + jwksUri + '\'' +
", registrationEndpoint='" + registrationEndpoint + '\'' +
", idGenerationEndpoint='" + idGenerationEndpoint + '\'' +
", introspectionEndpoint='" + introspectionEndpoint + '\'' +
", scopesSupported=" + scopesSupported +
", responseTypesSupported=" + responseTypesSupported +
", grantTypesSupported=" + grantTypesSupported +
", acrValuesSupported=" + acrValuesSupported +
", subjectTypesSupported=" + subjectTypesSupported +
", userInfoSigningAlgValuesSupported=" + userInfoSigningAlgValuesSupported +
", userInfoEncryptionAlgValuesSupported=" + userInfoEncryptionAlgValuesSupported +
", userInfoEncryptionEncValuesSupported=" + userInfoEncryptionEncValuesSupported +
", idTokenSigningAlgValuesSupported=" + idTokenSigningAlgValuesSupported +
", idTokenEncryptionAlgValuesSupported=" + idTokenEncryptionAlgValuesSupported +
", idTokenEncryptionEncValuesSupported=" + idTokenEncryptionEncValuesSupported +
", requestObjectSigningAlgValuesSupported=" + requestObjectSigningAlgValuesSupported +
", requestObjectEncryptionAlgValuesSupported=" + requestObjectEncryptionAlgValuesSupported +
", requestObjectEncryptionEncValuesSupported=" + requestObjectEncryptionEncValuesSupported +
", tokenEndpointAuthMethodsSupported=" + tokenEndpointAuthMethodsSupported +
", tokenEndpointAuthSigningAlgValuesSupported=" + tokenEndpointAuthSigningAlgValuesSupported +
", displayValuesSupported=" + displayValuesSupported +
", claimTypesSupported=" + claimTypesSupported +
", claimsSupported=" + claimsSupported +
", serviceDocumentation='" + serviceDocumentation + '\'' +
", claimsLocalesSupported=" + claimsLocalesSupported +
", uiLocalesSupported=" + uiLocalesSupported +
", claimsParameterSupported=" + claimsParameterSupported +
", requestParameterSupported=" + requestParameterSupported +
", requestUriParameterSupported=" + requestUriParameterSupported +
", frontChannelLogoutSupported=" + frontChannelLogoutSupported +
", frontChannelLogoutSessionSupported=" + frontChannelLogoutSessionSupported +
", requireRequestUriRegistration=" + requireRequestUriRegistration +
", opPolicyUri='" + opPolicyUri + '\'' +
", opTosUri='" + opTosUri + '\'' +
", scopeToClaimsMapping=" + scopeToClaimsMapping +
'}';
}
}