
edu.uiuc.ncsa.oa4mp.oauth2.client.OA2AssetConverter Maven / Gradle / Ivy
package edu.uiuc.ncsa.oa4mp.oauth2.client;
import edu.uiuc.ncsa.myproxy.oa4mp.client.Asset;
import edu.uiuc.ncsa.myproxy.oa4mp.client.storage.AssetConverter;
import edu.uiuc.ncsa.security.core.IdentifiableProvider;
import edu.uiuc.ncsa.security.delegation.token.RefreshToken;
import edu.uiuc.ncsa.security.delegation.token.impl.AccessTokenImpl;
import edu.uiuc.ncsa.security.oauth_2_0.OA2RefreshTokenImpl;
import edu.uiuc.ncsa.security.storage.data.ConversionMap;
import edu.uiuc.ncsa.security.storage.data.SerializationKeys;
import edu.uiuc.ncsa.security.util.pkcs.CertUtil;
import edu.uiuc.ncsa.security.util.pkcs.MyPKCS10CertRequest;
import java.net.URI;
/**
* Created by Jeff Gaynor
* on 3/20/14 at 2:42 PM
*/
public class OA2AssetConverter extends AssetConverter {
public OA2AssetConverter(SerializationKeys keys, IdentifiableProvider provider) {
super(keys, provider);
}
OA2AssetSerializationKeys getASK() {
return (OA2AssetSerializationKeys) keys;
}
@Override
public Asset fromMap(ConversionMap map, Asset asset) {
OA2Asset a = (OA2Asset) super.fromMap(map, asset);
String rawCR = map.getString(getASK().certReq());
if (rawCR != null) {
MyPKCS10CertRequest certReq = CertUtil.fromStringToCertReq(rawCR);
a.setCertReq(certReq);
}
String at = map.getString(getASK().accessToken());
if(at!= null) a.setAccessToken(new AccessTokenImpl(URI.create(at)));
String rt = map.getString(getASK().refreshToken()) ;
if(rt!= null){
RefreshToken refreshToken = new OA2RefreshTokenImpl(URI.create(rt));
refreshToken.setExpiresIn(map.getLong(getASK().refreshLifetime()));
a.setRefreshToken(refreshToken);
}
return a;
}
@Override
public void toMap(Asset asset, ConversionMap map) {
super.toMap(asset, map);
OA2Asset a = (OA2Asset) super.fromMap(map, asset);
if (a.getCertReq() == null) return;
map.put(getASK().certReq(), CertUtil.fromCertReqToString(asset.getCertReq()));
if (a.getAccessToken() != null) map.put(getASK().accessToken(), a.getAccessToken().getToken());
if (a.getRefreshToken() != null) {
map.put(getASK().refreshToken(), a.getRefreshToken().getToken());
map.put(getASK().refreshLifetime(), a.getRefreshToken().getExpiresIn());
}
}
}