package com.monkeyk.sos.domain.oauth;
import com.monkeyk.sos.infrastructure.DateUtils;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* @author Shengzhao Li
*/
public class OauthClientDetails implements Serializable {
private static final long serialVersionUID = -6947822646185526939L;
private LocalDateTime createTime = DateUtils.now();
private boolean archived = false;
private String clientId;
private String resourceIds;
private String clientSecret;
/**
* Available values: read,write
*/
private String scope;
/**
* grant types include
* "authorization_code", "password", "assertion", and "refresh_token".
* Default value is "authorization_code,refresh_token".
*/
private String authorizedGrantTypes = "authorization_code,refresh_token";
/**
* The re-direct URI(s) established during registration (optional, comma separated).
*/
private String webServerRedirectUri;
/**
* Authorities that are granted to the client (comma-separated). Distinct from the authorities
* granted to the user on behalf of whom the client is acting.
* <p/>
* For example: ROLE_USER
*/
private String authorities;
/**
* The access token validity period in seconds (optional).
* If unspecified a global default will be applied by the token services.
*/
private Integer accessTokenValidity;
/**
* The refresh token validity period in seconds (optional).
* If unspecified a global default will be applied by the token services.
*/
private Integer refreshTokenValidity;
// optional
private String additionalInformation;
/**
* The client is trusted or not. If it is trust, will skip approve step
* default false.
*/
private boolean trusted = false;
/**
* Value is 'true' or 'false', default 'false'
*/
private String autoApprove;
public OauthClientDetails() {
}
public String autoApprove() {
return autoApprove;
}
public OauthClientDetails autoApprove(String autoApprove) {
this.autoApprove = autoApprove;
return this;
}
public boolean trusted() {
return trusted;
}
public LocalDateTime createTime() {
return createTime;
}
public OauthClientDetails createTime(LocalDateTime createTime) {
this.createTime = createTime;
return this;
}
public boolean archived() {
return archived;
}
public String clientId() {
return clientId;
}
public String resourceIds() {
return resourceIds;
}
public String clientSecret() {
return clientSecret;
}
public String scope() {
return scope;
}
public String authorizedGrantTypes() {
return authorizedGrantTypes;
}
public String webServerRedirectUri() {
return webServerRedirectUri;
}
public String authorities() {
return authorities;
}
public Integer accessTokenValidity() {
return accessTokenValidity;
}
public Integer refreshTokenValidity() {
return refreshTokenValidity;
}
public String additionalInformation() {
return additionalInformation;
}
@Override
public String toString() {
final StringBuilder sb = new StringBuilder();
sb.append("OauthClientDetails");
sb.append("{createTime=").append(createTime);
sb.append(", archived=").append(archived);
sb.append(", clientId='").append(clientId).append('\'');
sb.append(", resourceIds='").append(resourceIds).append('\'');
sb.append(", clientSecret='").append(clientSecret).append('\'');
sb.append(", scope='").append(scope).append('\'');
sb.append(", authorizedGrantTypes='").append(authorizedGrantTypes).append('\'');
sb.append(", webServerRedirectUri='").append(webServerRedirectUri).append('\'');
sb.append(", authorities='").append(authorities).append('\'');
sb.append(", accessTokenValidity=").append(accessTokenValidity);
sb.append(", refreshTokenValidity=").append(refreshTokenValidity);
sb.append(", additionalInformation='").append(additionalInformation).append('\'');
sb.append(", trusted=").append(trusted);
sb.append('}');
return sb.toString();
}
public OauthClientDetails clientId(String clientId) {
this.clientId = clientId;
return this;
}
public OauthClientDetails clientSecret(String clientSecret) {
this.clientSecret = clientSecret;
return this;
}
public OauthClientDetails resourceIds(String resourceIds) {
this.resourceIds = resourceIds;
return this;
}
public OauthClientDetails authorizedGrantTypes(String authorizedGrantTypes) {
this.authorizedGrantTypes = authorizedGrantTypes;
return this;
}
public OauthClientDetails scope(String scope) {
this.scope = scope;
return this;
}
public OauthClientDetails webServerRedirectUri(String webServerRedirectUri) {
this.webServerRedirectUri = webServerRedirectUri;
return this;
}
public OauthClientDetails authorities(String authorities) {
this.authorities = authorities;
return this;
}
public OauthClientDetails accessTokenValidity(Integer accessTokenValidity) {
this.accessTokenValidity = accessTokenValidity;
return this;
}
public OauthClientDetails refreshTokenValidity(Integer refreshTokenValidity) {
this.refreshTokenValidity = refreshTokenValidity;
return this;
}
public OauthClientDetails trusted(boolean trusted) {
this.trusted = trusted;
return this;
}
public OauthClientDetails additionalInformation(String additionalInformation) {
this.additionalInformation = additionalInformation;
return this;
}
public OauthClientDetails archived(boolean archived) {
this.archived = archived;
return this;
}
}