1 package org
.argeo
.cms
.e4
.rap
;
3 import java
.security
.PrivilegedAction
;
5 import javax
.security
.auth
.Subject
;
7 import org
.eclipse
.rap
.e4
.E4ApplicationConfig
;
8 import org
.eclipse
.rap
.e4
.E4EntryPointFactory
;
9 import org
.eclipse
.rap
.rwt
.RWT
;
10 import org
.eclipse
.rap
.rwt
.application
.EntryPoint
;
11 import org
.eclipse
.rap
.rwt
.client
.service
.JavaScriptExecutor
;
13 public class CmsE4EntryPointFactory
extends E4EntryPointFactory
{
14 public final static String DEFAULT_LIFECYCLE_URI
= "bundleclass://org.argeo.cms.e4.rap/org.argeo.cms.e4.rap.CmsLoginLifecycle";
16 public CmsE4EntryPointFactory(E4ApplicationConfig config
) {
20 public CmsE4EntryPointFactory(String e4Xmi
, String lifeCycleUri
) {
21 super(defaultConfig(e4Xmi
, lifeCycleUri
));
24 public CmsE4EntryPointFactory(String e4Xmi
) {
25 this(e4Xmi
, DEFAULT_LIFECYCLE_URI
);
28 public static E4ApplicationConfig
defaultConfig(String e4Xmi
, String lifeCycleUri
) {
29 E4ApplicationConfig config
= new E4ApplicationConfig(e4Xmi
, lifeCycleUri
, null, null, false, true, true);
34 public EntryPoint
create() {
35 EntryPoint ep
= createEntryPoint();
36 EntryPoint authEp
= new EntryPoint() {
39 public int createUI() {
40 Subject subject
= new Subject();
41 return Subject
.doAs(subject
, new PrivilegedAction
<Integer
>() {
44 public Integer
run() {
46 // HttpServletRequest request = RWT.getRequest();
47 // String authorization = request.getHeader(HEADER_AUTHORIZATION);
48 // if (authorization == null || !authorization.startsWith("Negotiate")) {
49 // HttpServletResponse response = RWT.getResponse();
50 // response.setStatus(401);
51 // response.setHeader(HEADER_WWW_AUTHENTICATE, "Negotiate");
52 // response.setDateHeader("Date", System.currentTimeMillis());
53 // response.setDateHeader("Expires", System.currentTimeMillis() + (24 * 60 * 60
55 // response.setHeader("Accept-Ranges", "bytes");
56 // response.setHeader("Connection", "Keep-Alive");
57 // response.setHeader("Keep-Alive", "timeout=5, max=97");
58 // // response.setContentType("text/html; charset=UTF-8");
61 JavaScriptExecutor jsExecutor
= RWT
.getClient().getService(JavaScriptExecutor
.class);
62 Integer exitCode
= ep
.createUI();
63 jsExecutor
.execute("location.reload()");
73 protected EntryPoint
createEntryPoint() {
74 return super.create();