/*
* (C) Copyright 2006-2013 Nuxeo SA (http://nuxeo.com/) and others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Contributors:
* Nelson Silva <nelson.silva@inevo.pt> - initial API and implementation
* Nuxeo
*/
package org.nuxeo.ecm.platform.oauth2.openid;
import java.io.Serializable;
import org.nuxeo.common.xmap.annotation.XNode;
import org.nuxeo.common.xmap.annotation.XNodeList;
import org.nuxeo.common.xmap.annotation.XObject;
import org.nuxeo.ecm.platform.oauth2.openid.auth.DefaultOpenIDUserInfo;
import org.nuxeo.ecm.platform.oauth2.openid.auth.OpenIDUserInfo;
import org.nuxeo.ecm.platform.oauth2.openid.auth.UserResolver;
import org.nuxeo.ecm.platform.oauth2.openid.auth.EmailBasedUserResolver;
@XObject("provider")
public class OpenIDConnectProviderDescriptor implements Serializable {
protected static final long serialVersionUID = 1L;
public static final String DEFAULT_ACCESS_TOKEN_KEY = "access_token";
public static final Class<? extends UserResolver> DEFAULT_USER_RESOLVER_CLASS = EmailBasedUserResolver.class;
public static final Class<? extends RedirectUriResolver> DEFAULT_REDIRECT_URI_RESOLVER_CLASS = RedirectUriResolverHelper.class;
public static final Class<? extends OpenIDUserInfo> DEFAULT_USER_INFO_CLASS = DefaultOpenIDUserInfo.class;
@XNode("@enabled")
protected boolean enabled = true;
@XNode("name")
protected String name;
@XNode("tokenServerURL")
protected String tokenServerURL;
@XNode("authorizationServerURL")
protected String authorizationServerURL;
@XNode("userInfoURL")
protected String userInfoURL;
@XNode("accessTokenKey")
protected String accessTokenKey = DEFAULT_ACCESS_TOKEN_KEY;
@XNode("clientId")
protected String clientId;
@XNode("clientSecret")
protected String clientSecret;
@XNodeList(value = "scope", type = String[].class, componentType = String.class)
protected String[] scopes;
@XNode("icon")
protected String icon;
@XNode("label")
protected String label;
@XNode("description")
protected String description;
@XNode("userResolverClass")
protected Class<? extends UserResolver> userResolverClass;
@XNode("userMapperName")
protected String userMapper;
@XNode("redirectUriResolver")
protected Class<? extends RedirectUriResolver> redirectUriResolver = DEFAULT_REDIRECT_URI_RESOLVER_CLASS;
@XNode("userInfoClass")
protected Class<? extends OpenIDUserInfo> userInfoClass = DEFAULT_USER_INFO_CLASS;
public static long getSerialversionuid() {
return serialVersionUID;
}
public String getName() {
return name;
}
public String getTokenServerURL() {
return tokenServerURL;
}
public String getAuthorizationServerURL() {
return authorizationServerURL;
}
public String getClientId() {
return clientId;
}
public String getClientSecret() {
return clientSecret;
}
public String[] getScopes() {
return scopes;
}
public String getUserInfoURL() {
return userInfoURL;
}
public String getAccessTokenKey() {
return accessTokenKey;
}
public String getIcon() {
return icon;
}
public boolean isEnabled() {
return enabled;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
public String getLabel() {
return label;
}
public String getDescription() {
return description;
}
public String getUserMapper() {
return userMapper;
}
public Class<? extends UserResolver> getUserResolverClass() {
if (userResolverClass==null && userMapper==null) {
return DEFAULT_USER_RESOLVER_CLASS;
}
return userResolverClass;
}
public Class<? extends RedirectUriResolver> getRedirectUriResolver() {
return redirectUriResolver;
}
public Class<? extends OpenIDUserInfo> getUserInfoClass() {
return userInfoClass;
}
}