Commit d634f19e authored by Quxl's avatar Quxl

x

parent 1fe276cd
package com.egolm.sso.api;
import java.util.Map;
import com.egolm.sso.oauth.OAuthApi;
public interface SSORequest {
OAuthApi getOAuthApi();
default String post(String url, Object body, Map<String, String> header) {
return null;
}
}
...@@ -19,6 +19,7 @@ import org.apache.oltu.oauth2.common.OAuth; ...@@ -19,6 +19,7 @@ import org.apache.oltu.oauth2.common.OAuth;
import org.apache.oltu.oauth2.common.exception.OAuthProblemException; import org.apache.oltu.oauth2.common.exception.OAuthProblemException;
import org.apache.oltu.oauth2.common.message.types.GrantType; import org.apache.oltu.oauth2.common.message.types.GrantType;
import com.alibaba.fastjson.JSONObject;
import com.egolm.sso.StringUtil; import com.egolm.sso.StringUtil;
public interface OAuthApi { public interface OAuthApi {
...@@ -139,5 +140,36 @@ public interface OAuthApi { ...@@ -139,5 +140,36 @@ public interface OAuthApi {
throw new OAuthApiException(e.getMessage(), e); throw new OAuthApiException(e.getMessage(), e);
} }
} }
default String doPost(String url, Map<String, String> headers, JSONObject data) {
try {
String accept = "application/json";
String requestId = ("" + System.currentTimeMillis());
String countryCode = System.getProperty("X-SE-IFW-CountryCode");
String languageCode = System.getProperty("X-SE-IFW-LanguageCode");
String applicationName = System.getProperty("X-SE-IFW-ApplicationName");
headers.put("Accept", accept);
headers.put("X-SE-IFW-RequestId", requestId);
headers.put("X-SE-IFW-CountryCode", countryCode);
headers.put("X-SE-IFW-LanguageCode", languageCode);
headers.put("X-SE-IFW-ApplicationName", applicationName);
HttpServletRequest request = this.getHttpServletRequest();
HttpSession session = request.getSession();
OAuthToken token = (OAuthToken)session.getAttribute(OAUTH_TOKEN_SESSION);
OAuthClient oAuthClient = new OAuthClient(new URLConnectionClient());
String accessToken = token.getAccessToken();
OAuthClientRequest clientRequest = new OAuthBearerClientRequest(url).setAccessToken(accessToken).buildQueryMessage();
clientRequest.setBody(data.toString());
clientRequest.setHeaders(headers);
OAuthResourceResponse resourceResponse = oAuthClient.resource(clientRequest, "POST", OAuthResourceResponse.class);
String resBody = resourceResponse.getBody();
return resBody;
} catch (OAuthProblemException e) {
this.refresh();
return doPost(url, headers, data);
} catch (Exception e) {
throw new OAuthApiException(e.getMessage(), e);
}
}
} }
/**
*
*/
/**
* @author Quxl
*
*/
package com.egolm.sso.oauth;
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment