save json object inside registered client if it's available, closes #800

pull/844/head
Justin Richer 2015-06-03 11:07:45 -04:00
parent 9e74e40453
commit 286d433da6
2 changed files with 93 additions and 69 deletions

View File

@ -28,6 +28,7 @@ import org.mitre.oauth2.model.ClientDetailsEntity.AuthMethod;
import org.mitre.oauth2.model.ClientDetailsEntity.SubjectType; import org.mitre.oauth2.model.ClientDetailsEntity.SubjectType;
import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.GrantedAuthority;
import com.google.gson.JsonObject;
import com.nimbusds.jose.EncryptionMethod; import com.nimbusds.jose.EncryptionMethod;
import com.nimbusds.jose.JWEAlgorithm; import com.nimbusds.jose.JWEAlgorithm;
import com.nimbusds.jose.JWSAlgorithm; import com.nimbusds.jose.JWSAlgorithm;
@ -45,6 +46,7 @@ public class RegisteredClient {
private Date clientSecretExpiresAt; private Date clientSecretExpiresAt;
private Date clientIdIssuedAt; private Date clientIdIssuedAt;
private ClientDetailsEntity client; private ClientDetailsEntity client;
private JsonObject src;
/** /**
* *
@ -781,6 +783,20 @@ public class RegisteredClient {
this.clientIdIssuedAt = issuedAt; this.clientIdIssuedAt = issuedAt;
} }
/**
* @return the src
*/
public JsonObject getSource() {
return src;
}
/**
* @param src the src to set
*/
public void setSource(JsonObject src) {
this.src = src;
}
} }

View File

@ -222,6 +222,8 @@ public class ClientDetailsEntityJsonProcessor {
rc.setClientIdIssuedAt(getAsDate(o, CLIENT_ID_ISSUED_AT)); rc.setClientIdIssuedAt(getAsDate(o, CLIENT_ID_ISSUED_AT));
rc.setClientSecretExpiresAt(getAsDate(o, CLIENT_SECRET_EXPIRES_AT)); rc.setClientSecretExpiresAt(getAsDate(o, CLIENT_SECRET_EXPIRES_AT));
rc.setSource(o);
return rc; return rc;
} else { } else {
return null; return null;
@ -235,6 +237,12 @@ public class ClientDetailsEntityJsonProcessor {
* @return * @return
*/ */
public static JsonObject serialize(RegisteredClient c) { public static JsonObject serialize(RegisteredClient c) {
if (c.getSource() != null) {
// if we have the original object, just use that
return c.getSource();
} else {
JsonObject o = new JsonObject(); JsonObject o = new JsonObject();
o.addProperty(CLIENT_ID, c.getClientId()); o.addProperty(CLIENT_ID, c.getClientId());
@ -308,5 +316,5 @@ public class ClientDetailsEntityJsonProcessor {
return o; return o;
} }
}
} }