我正在将我的项目(使用servlets / jsp / jdbc / jndi)构建在Weblogic 10c上,迁移到Apache Tomcat 7.0.22。我已设法配置ldap身份验证服务器,并替换weblogic使用的xxx-jdbc.xml。现在我的问题是我正在尝试迁移web Content / WEB-INF目录中的weblogic.xml文件。 xml文件的内容如下:
<?xml version = '1.0' encoding = 'UTF-8'?>
<weblogic-web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-web-app http://www.bea.com/ns/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd"
xmlns="http://www.bea.com/ns/weblogic/weblogic-web-app">
<security-role-assignment>
<role-name>REGISTERED_USER</role-name>
<principal-name>GROUP_NAME_FROM_LDAP</principal-name>
</security-role-assignment>
<session-descriptor>
<debug-enabled>false</debug-enabled>
<tracking-enabled>true</tracking-enabled>
<cookie-name>nameOfCookie</cookie-name>
<cookie-max-age-secs>-1</cookie-max-age-secs>
<url-rewriting-enabled>false</url-rewriting-enabled>
<encode-session-id-in-query-params>false</encode-session-id-in-query-params>
<sharing-enabled>false</sharing-enabled>
</session-descriptor>
<context-root>my_app_context_root</context-root>
<servlet-descriptor>
<servlet-name>FileDownload</servlet-name>
</servlet-descriptor>
</weblogic-web-app>
从上到下,我有一个security-role-assignment,它将来自ldap组的用户映射到REGISTERED_USER。我认为标签会话描述符是自我解释的。然后是我的应用程序上下文根context-root。然后是一些用于将servlet注册到Weblogic的servlet定义(这也在web.xml中定义,我认为这不再需要处理)。
那么在我的应用程序中迁移此weblogic.xml文件的最佳方法是什么?
答案 0 :(得分:4)
在Tomcat中,这些东西可以在几个不同的地方定义。
对于security-role
重新映射,请使用web.xml中的标准<security-role-ref>
重新映射角色名称。
如果您使用的是servlet-3.0规范的webapp,那么许多与会话和cookie相关的项目都可以通过web.xml获得:
<session-config>
<cookie-config>
<name>nameOfCookie</name>
<max-age>-1</max-age>
</cookie-config>
<!-- just don't use "URL" to disable rewriting -->
<tracking-mode>COOKIE</tracking-mode>
</session-config>
否则,你将不得不诉诸一些杂技。首先,我假设您在webapp中使用META-INF/context.xml
文件来部署到Tomcat。
会话Cookie名称
<Context sessionCookieName="nameOfCookie" />
Cookie max-age
在web.xml中使用标准<session-config><session-timeout />
。 (从技术上讲,这会配置会话的最大年龄,但效果是相同的:会话到期后cookie基本上会变为无效。如果你真的需要cookie max-age,请阅读以下帖子:http://markmail.org/thread/u2ysiz3uxays2w4i)
配置不支持Cookie调试/跟踪。您必须编写自己的Filter
(s)来复制这些功能。
禁用网址重写需要您编写Filter
来覆盖HttpServletResponse.encodeURL
和HttpServletResponse.encodeRedirectURL
,使其成为String
参数的无操作。