]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - cms/org.argeo.cms.integration/src/org/argeo/cms/integration/CmsTokenServlet.java
Improve merging
[gpl/argeo-slc.git] / cms / org.argeo.cms.integration / src / org / argeo / cms / integration / CmsTokenServlet.java
index 11a6944b29efc2fc739d3dc52e653e193fb4f55b..983202ad2147b7d30908a3ae09a4cc8cd6ed35d4 100644 (file)
@@ -15,11 +15,13 @@ import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.argeo.api.NodeConstants;
+import org.argeo.api.cms.CmsAuth;
 import org.argeo.cms.CmsUserManager;
-import org.argeo.cms.auth.HttpRequestCallback;
-import org.argeo.cms.auth.HttpRequestCallbackHandler;
-import org.argeo.naming.NamingUtils;
+import org.argeo.cms.auth.RemoteAuthCallback;
+import org.argeo.cms.auth.RemoteAuthCallbackHandler;
+import org.argeo.cms.servlet.ServletHttpRequest;
+import org.argeo.cms.servlet.ServletHttpResponse;
+import org.argeo.util.naming.NamingUtils;
 import org.osgi.service.useradmin.Authorization;
 
 import com.fasterxml.jackson.core.JsonGenerator;
@@ -38,16 +40,17 @@ public class CmsTokenServlet extends HttpServlet {
        private ObjectMapper objectMapper = new ObjectMapper();
 
        @Override
-       protected void doPost(HttpServletRequest request, HttpServletResponse response)
-                       throws ServletException, IOException {
+       protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
+               ServletHttpRequest request = new ServletHttpRequest(req);
+               ServletHttpResponse response = new ServletHttpResponse(resp);
                LoginContext lc = null;
                try {
-                       lc = new LoginContext(NodeConstants.LOGIN_CONTEXT_USER, new HttpRequestCallbackHandler(request, response) {
+                       lc = new LoginContext(CmsAuth.LOGIN_CONTEXT_USER, new RemoteAuthCallbackHandler(request, response) {
                                public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
                                        for (Callback callback : callbacks) {
-                                               if (callback instanceof HttpRequestCallback) {
-                                                       ((HttpRequestCallback) callback).setRequest(request);
-                                                       ((HttpRequestCallback) callback).setResponse(response);
+                                               if (callback instanceof RemoteAuthCallback) {
+                                                       ((RemoteAuthCallback) callback).setRequest(request);
+                                                       ((RemoteAuthCallback) callback).setResponse(response);
                                                }
                                        }
                                }
@@ -61,7 +64,7 @@ public class CmsTokenServlet extends HttpServlet {
                        Subject subject = lc.getSubject();
                        Authorization authorization = extractFrom(subject.getPrivateCredentials(Authorization.class));
                        String token = UUID.randomUUID().toString();
-                       String expiryDateStr = request.getParameter(PARAM_EXPIRY_DATE);
+                       String expiryDateStr = req.getParameter(PARAM_EXPIRY_DATE);
                        ZonedDateTime expiryDate;
                        if (expiryDateStr != null) {
                                expiryDate = NamingUtils.ldapDateToZonedDateTime(expiryDateStr);
@@ -77,11 +80,11 @@ public class CmsTokenServlet extends HttpServlet {
                        tokenDescriptor.setExpiryDate(expiryDateStr);
 //                     tokenDescriptor.setRoles(Collections.unmodifiableSortedSet(new TreeSet<>(Arrays.asList(roles))));
 
-                       response.setContentType("application/json");
-                       JsonGenerator jg = objectMapper.getFactory().createGenerator(response.getWriter());
+                       resp.setContentType("application/json");
+                       JsonGenerator jg = objectMapper.getFactory().createGenerator(resp.getWriter());
                        jg.writeObject(tokenDescriptor);
                } catch (Exception e) {
-                       new CmsExceptionsChain(e).writeAsJson(objectMapper, response);
+                       new CmsExceptionsChain(e).writeAsJson(objectMapper, resp);
                }
        }