<artifactId>org.argeo.cms</artifactId>
<version>${version.argeo-commons}</version>
</dependency>
+ <dependency>
+ <groupId>org.argeo.commons</groupId>
+ <artifactId>org.argeo.cms.servlet</artifactId>
+ <version>${version.argeo-commons}</version>
+ </dependency>
<dependency>
<groupId>org.argeo.commons</groupId>
<artifactId>org.argeo.cms.jcr</artifactId>
import org.argeo.api.cms.CmsSessionId;
import org.argeo.cms.auth.HttpRequestCallback;
import org.argeo.cms.auth.HttpRequestCallbackHandler;
+import org.argeo.cms.servlet.ServletHttpRequest;
+import org.argeo.cms.servlet.ServletHttpResponse;
import org.osgi.service.useradmin.Authorization;
import com.fasterxml.jackson.core.JsonGenerator;
}
@Override
- protected void doPost(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
+ protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
LoginContext lc = null;
- String username = request.getParameter(PARAM_USERNAME);
- String password = request.getParameter(PARAM_PASSWORD);
+ String username = req.getParameter(PARAM_USERNAME);
+ String password = req.getParameter(PARAM_PASSWORD);
+ ServletHttpRequest request = new ServletHttpRequest(req);
+ ServletHttpResponse response = new ServletHttpResponse(resp);
try {
lc = new LoginContext(NodeConstants.LOGIN_CONTEXT_USER, new HttpRequestCallbackHandler(request, response) {
public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
Subject subject = lc.getSubject();
CmsSessionId cmsSessionId = extractFrom(subject.getPrivateCredentials(CmsSessionId.class));
if (cmsSessionId == null) {
- response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
+ resp.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
return;
}
Authorization authorization = extractFrom(subject.getPrivateCredentials(Authorization.class));
cmsSessionId.getUuid().toString(), authorization.getRoles(), authorization.toString(),
locale != null ? locale.toString() : null);
- response.setContentType("application/json");
- JsonGenerator jg = objectMapper.getFactory().createGenerator(response.getWriter());
+ resp.setContentType("application/json");
+ JsonGenerator jg = objectMapper.getFactory().createGenerator(resp.getWriter());
jg.writeObject(cmsSessionDescriptor);
- String redirectTo = redirectTo(request);
+ String redirectTo = redirectTo(req);
if (redirectTo != null)
- response.sendRedirect(redirectTo);
+ resp.sendRedirect(redirectTo);
} catch (LoginException e) {
- response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
+ resp.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
return;
}
}
import org.argeo.cms.auth.CurrentUser;
import org.argeo.cms.auth.HttpRequestCallback;
import org.argeo.cms.auth.HttpRequestCallbackHandler;
+import org.argeo.cms.servlet.ServletHttpRequest;
+import org.argeo.cms.servlet.ServletHttpResponse;
/** Externally authenticate an http session. */
public class CmsLogoutServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
+ ServletHttpRequest httpRequest = new ServletHttpRequest(request);
+ ServletHttpResponse httpResponse = new ServletHttpResponse(response);
LoginContext lc = null;
try {
- lc = new LoginContext(NodeConstants.LOGIN_CONTEXT_USER, new HttpRequestCallbackHandler(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);
+ lc = new LoginContext(NodeConstants.LOGIN_CONTEXT_USER,
+ new HttpRequestCallbackHandler(httpRequest, httpResponse) {
+ public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
+ for (Callback callback : callbacks) {
+ if (callback instanceof HttpRequestCallback) {
+ ((HttpRequestCallback) callback).setRequest(httpRequest);
+ ((HttpRequestCallback) callback).setResponse(httpResponse);
+ }
+ }
}
- }
- }
- });
+ });
lc.login();
Subject subject = lc.getSubject();
import org.argeo.cms.auth.HttpRequestCallbackHandler;
import org.argeo.cms.servlet.ServletAuthUtils;
+import org.argeo.cms.servlet.ServletHttpRequest;
+import org.argeo.cms.servlet.ServletHttpResponse;
import org.osgi.service.http.context.ServletContextHelper;
/** Manages security access to servlets. */
* the login page.
*/
@Override
- public boolean handleSecurity(final HttpServletRequest request, HttpServletResponse response) throws IOException {
+ public boolean handleSecurity(final HttpServletRequest req, HttpServletResponse resp) throws IOException {
LoginContext lc = null;
+ ServletHttpRequest request = new ServletHttpRequest(req);
+ ServletHttpResponse response = new ServletHttpResponse(resp);
- String pathInfo = request.getPathInfo();
- String servletPath = request.getServletPath();
+ String pathInfo = req.getPathInfo();
+ String servletPath = req.getServletPath();
if ((pathInfo != null && (servletPath + pathInfo).equals(loginPage)) || servletPath.contentEquals(loginServlet))
return true;
try {
lc = new LoginContext(LOGIN_CONTEXT_USER, new HttpRequestCallbackHandler(request, response));
lc.login();
} catch (LoginException e) {
- lc = processUnauthorized(request, response);
+ lc = processUnauthorized(req, resp);
if (lc == null)
return false;
}
}
@Override
- public void finishSecurity(HttpServletRequest request, HttpServletResponse response) {
- ServletAuthUtils.clearRequestSecurity(request);
+ public void finishSecurity(HttpServletRequest req, HttpServletResponse resp) {
+ ServletAuthUtils.clearRequestSecurity(new ServletHttpRequest(req));
}
protected LoginContext processUnauthorized(HttpServletRequest request, HttpServletResponse response) {
import org.argeo.cms.CmsUserManager;
import org.argeo.cms.auth.HttpRequestCallback;
import org.argeo.cms.auth.HttpRequestCallbackHandler;
+import org.argeo.cms.servlet.ServletHttpRequest;
+import org.argeo.cms.servlet.ServletHttpResponse;
import org.argeo.naming.NamingUtils;
import org.osgi.service.useradmin.Authorization;
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) {
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);
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);
}
}
import javax.security.auth.Subject;
import javax.security.auth.login.LoginContext;
-import javax.servlet.http.HttpSession;
import javax.websocket.Extension;
import javax.websocket.HandshakeResponse;
import javax.websocket.server.HandshakeRequest;
import org.apache.commons.logging.LogFactory;
import org.argeo.api.NodeConstants;
import org.argeo.cms.auth.HttpRequestCallbackHandler;
+import org.argeo.cms.auth.HttpSession;
+import org.argeo.cms.servlet.ServletHttpSession;
import org.osgi.service.http.context.ServletContextHelper;
/** Customises the initialisation of a new web socket. */
@Override
public void modifyHandshake(ServerEndpointConfig sec, HandshakeRequest request, HandshakeResponse response) {
- HttpSession httpSession = (HttpSession) request.getHttpSession();
+
+ HttpSession httpSession = new ServletHttpSession((javax.servlet.http.HttpSession) request.getHttpSession());
if (log.isDebugEnabled() && httpSession != null)
log.debug("Web socket HTTP session id: " + httpSession.getId());
// webServerConfig.put(InternalHttpConstants.WEBSOCKET_ENABLED, "true");
//}
//}
-
<type>pom</type>
</dependency>
-
- <!-- OSGi Boot for platform generation only, as it could be used by regular
- Java applications to launch an OSGi runtime. -->
- <dependency>
- <groupId>org.argeo.commons</groupId>
- <artifactId>org.argeo.osgi.boot</artifactId>
- <version>${version.argeo-commons}</version>
- <scope>test</scope>
- </dependency>
-
<!-- ALM Third Parties -->
<!-- <dependency> -->
<!-- <groupId>org.argeo.tp.apache.ant</groupId> -->
<dependencies>
<dependency>
<groupId>org.argeo.commons</groupId>
- <artifactId>org.argeo.osgi.boot</artifactId>
+ <artifactId>org.argeo.init</artifactId>
<version>${version.argeo-commons}</version>
<scope>test</scope>
</dependency>
<!-- <version>${version.argeo-commons}</version> -->
<!-- </dependency> -->
<dependency>
- <groupId>org.argeo.commons</groupId>
+ <groupId>org.argeo.commons.rap</groupId>
<artifactId>org.argeo.swt.specific.rap</artifactId>
<version>${version.argeo-commons}</version>
</dependency>
<dependencies>
<dependency>
<groupId>org.argeo.commons</groupId>
- <artifactId>org.argeo.osgi.boot</artifactId>
+ <artifactId>org.argeo.init</artifactId>
<version>${version.argeo-commons}</version>
<scope>test</scope>
</dependency>
</dependency>
<!-- RAP specific -->
<dependency>
- <groupId>org.argeo.commons</groupId>
+ <groupId>org.argeo.commons.rap</groupId>
<artifactId>org.argeo.swt.specific.rap</artifactId>
<version>${version.argeo-commons}</version>
</dependency>
</dependency>
<dependency>
- <groupId>org.argeo.commons</groupId>
+ <groupId>org.argeo.commons.rap</groupId>
<artifactId>org.argeo.swt.specific.rap</artifactId>
<version>${version.argeo-commons}</version>
<scope>provided</scope>
<version>2.3-SNAPSHOT</version>
</dependency>
- <!-- OSGi Boot for platform generation only, as it could be used by regular
- Java applications to launch an OSGi runtime. -->
- <dependency>
- <groupId>org.argeo.commons</groupId>
- <artifactId>org.argeo.osgi.boot</artifactId>
- <version>${version.argeo-commons}</version>
- <scope>test</scope>
- </dependency>
-
<!-- Legacy Argeo Commons platform (Eclipse 3) -->
<dependency>
<groupId>org.argeo.slc.legacy.commons</groupId>
<dependencies>
<dependency>
<groupId>org.argeo.commons</groupId>
- <artifactId>org.argeo.osgi.boot</artifactId>
+ <artifactId>org.argeo.init</artifactId>
<version>${version.argeo-commons}</version>
<scope>test</scope>
</dependency>
<version>${version.argeo-commons}</version>
</dependency>
<dependency>
- <groupId>org.argeo.commons</groupId>
+ <groupId>org.argeo.commons.rap</groupId>
<artifactId>org.argeo.swt.specific.rap</artifactId>
<version>${version.argeo-commons}</version>
<scope>provided</scope>
<version>${version.argeo-commons}</version>
</dependency>
<dependency>
- <groupId>org.argeo.commons</groupId>
+ <groupId>org.argeo.commons.rap</groupId>
<artifactId>org.argeo.swt.specific.rap</artifactId>
<version>${version.argeo-commons}</version>
<scope>provided</scope>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.argeo.slc</groupId>
<name>SLC Launcher</name>
<build>
<plugins>
-<!-- <plugin> -->
-<!-- <groupId>org.apache.maven.plugins</groupId> -->
-<!-- <artifactId>maven-assembly-plugin</artifactId> -->
-<!-- <configuration> -->
-<!-- <descriptors> -->
-<!-- <descriptor>assembly/base.xml</descriptor> -->
-<!-- </descriptors> -->
-<!-- </configuration> -->
-<!-- <executions> -->
-<!-- <execution> -->
-<!-- <id>assembly-base</id> -->
-<!-- <phase>package</phase> -->
-<!-- <goals> -->
-<!-- <goal>single</goal> -->
-<!-- </goals> -->
-<!-- </execution> -->
-<!-- </executions> -->
-<!-- </plugin> -->
-<!-- <plugin> -->
-<!-- <groupId>org.apache.felix</groupId> -->
-<!-- <artifactId>maven-bundle-plugin</artifactId> -->
-<!-- <configuration> -->
-<!-- <instructions> -->
-<!-- <Main-Class>org.argeo.slc.cli.SlcMain</Main-Class> -->
-<!-- </instructions> -->
-<!-- </configuration> -->
-<!-- </plugin> -->
-<!-- <plugin> -->
-<!-- <artifactId>maven-resources-plugin</artifactId> -->
-<!-- <executions> -->
-<!-- <execution> -->
-<!-- <phase>validate</phase> -->
-<!-- <goals> -->
-<!-- <goal>copy-resources</goal> -->
-<!-- </goals> -->
-<!-- <configuration> -->
-<!-- <outputDirectory>${basedir}/target/base</outputDirectory> -->
-<!-- <resources> -->
-<!-- <resource> -->
-<!-- <directory>base</directory> -->
-<!-- <filtering>true</filtering> -->
-<!-- </resource> -->
-<!-- </resources> -->
-<!-- </configuration> -->
-<!-- </execution> -->
-<!-- </executions> -->
-<!-- </plugin> -->
+ <!-- <plugin> -->
+ <!-- <groupId>org.apache.maven.plugins</groupId> -->
+ <!-- <artifactId>maven-assembly-plugin</artifactId> -->
+ <!-- <configuration> -->
+ <!-- <descriptors> -->
+ <!-- <descriptor>assembly/base.xml</descriptor> -->
+ <!-- </descriptors> -->
+ <!-- </configuration> -->
+ <!-- <executions> -->
+ <!-- <execution> -->
+ <!-- <id>assembly-base</id> -->
+ <!-- <phase>package</phase> -->
+ <!-- <goals> -->
+ <!-- <goal>single</goal> -->
+ <!-- </goals> -->
+ <!-- </execution> -->
+ <!-- </executions> -->
+ <!-- </plugin> -->
+ <!-- <plugin> -->
+ <!-- <groupId>org.apache.felix</groupId> -->
+ <!-- <artifactId>maven-bundle-plugin</artifactId> -->
+ <!-- <configuration> -->
+ <!-- <instructions> -->
+ <!-- <Main-Class>org.argeo.slc.cli.SlcMain</Main-Class> -->
+ <!-- </instructions> -->
+ <!-- </configuration> -->
+ <!-- </plugin> -->
+ <!-- <plugin> -->
+ <!-- <artifactId>maven-resources-plugin</artifactId> -->
+ <!-- <executions> -->
+ <!-- <execution> -->
+ <!-- <phase>validate</phase> -->
+ <!-- <goals> -->
+ <!-- <goal>copy-resources</goal> -->
+ <!-- </goals> -->
+ <!-- <configuration> -->
+ <!-- <outputDirectory>${basedir}/target/base</outputDirectory> -->
+ <!-- <resources> -->
+ <!-- <resource> -->
+ <!-- <directory>base</directory> -->
+ <!-- <filtering>true</filtering> -->
+ <!-- </resource> -->
+ <!-- </resources> -->
+ <!-- </configuration> -->
+ <!-- </execution> -->
+ <!-- </executions> -->
+ <!-- </plugin> -->
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.argeo.commons</groupId>
- <artifactId>org.argeo.osgi.boot</artifactId>
+ <artifactId>org.argeo.init</artifactId>
<version>${version.argeo-commons}</version>
</dependency>
</dependencies>
import javax.security.auth.Subject;
import javax.security.auth.login.LoginContext;
-import org.argeo.osgi.boot.OsgiBoot;
+import org.argeo.init.osgi.OsgiBoot;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceReference;
import org.osgi.framework.launch.Framework;
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.argeo.slc</groupId>
<!-- Commons -->
<dependency>
<groupId>org.argeo.commons</groupId>
- <artifactId>org.argeo.enterprise</artifactId>
+ <artifactId>org.argeo.util</artifactId>
<version>${version.argeo-commons}</version>
</dependency>
<dependency>
<!-- Commons -->
<dependency>
<groupId>org.argeo.commons</groupId>
- <artifactId>org.argeo.osgi.boot</artifactId>
+ <artifactId>org.argeo.init</artifactId>
<version>${version.argeo-commons}</version>
<scope>provided</scope>
</dependency>
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.argeo.osgi.boot.OsgiBoot;
+import org.argeo.init.osgi.OsgiBoot;
import org.argeo.slc.SlcException;
import org.eclipse.core.runtime.adaptor.EclipseStarter;
import org.eclipse.gemini.blueprint.util.OsgiStringUtils;
<!-- Commons -->
<dependency>
<groupId>org.argeo.commons</groupId>
- <artifactId>org.argeo.enterprise</artifactId>
+ <artifactId>org.argeo.util</artifactId>
<version>${version.argeo-commons}</version>
</dependency>
<dependency>