Java oc4j如何从主题设置用户主体?

Java oc4j如何从主题设置用户主体?,java,authentication,oc4j,Java,Authentication,Oc4j,我有一个传统的webapp,它目前在servlet中对用户进行身份验证。也就是说,它从servlet调用LoginContext.login() 作为升级的一部分,我想通过web.xml文件添加使用声明式身份验证的新网页。我希望旧网页继续使用servlet身份验证。最后,我将重做旧网页以使用新的身份验证 但是,新页面不会继承从servlet完成的身份验证。它们被认为是未经身份验证的,请求中没有userPrincipal 对于现有的servlet,我以一个主题结束。有什么方法可以调用某个对象,以便

我有一个传统的webapp,它目前在servlet中对用户进行身份验证。也就是说,它从servlet调用LoginContext.login()

作为升级的一部分,我想通过web.xml文件添加使用声明式身份验证的新网页。我希望旧网页继续使用servlet身份验证。最后,我将重做旧网页以使用新的身份验证

但是,新页面不会继承从servlet完成的身份验证。它们被认为是未经身份验证的,请求中没有userPrincipal

对于现有的servlet,我以一个主题结束。有什么方法可以调用某个对象,以便OC4J从该对象的一个主体设置用户主体吗?

找到它:

  // http://docs.oracle.com/html/E13977_01/authoriz.htm#BABHJJCJ
  // oc4jclient.jar, oc4j-unsupported-api.jar
  oracle.oc4j.security.Security.setSubject(subject, Longevity.SESSION);

我在尝试不同的东西。在一个旧页面上,我将菜单栏更改为指向一个新页面。我将JSESSIONID添加到url中,希望可以使用现有会话。但是,似乎正在创建一个新会话。例如,在/jobs.app上,菜单栏有一个指向/secure/spsas.jsp?JSESSIONID=。。。不走运。旧页面在SpringMVC控制下,而新页面在Struts控制下,如果这有区别的话。别想知道为什么会有不同。更多信息。旧内容位于上下文的顶层(如/myapp/jobs.app),而新内容位于底层(如/myapp/secure/spsas.jsp)。我希望通过web.xml中的内容来保护新内容,而不是使用LoginContext。