我想将多个登录页面添加到单个jasperserver中。我已经对代码进行了自定义,并将login1.jsp和login2.jsp添加到moudles/login/文件夹中。此外,我还在\jasperserver-war\src\main\webapp\WEB-INF\jasperserver-servlet.xml中添加了以下代码
豆class="org.springframework.beans.factory.config.PropertiesFactoryBean"> id="urlHandlerMapping“ jsFileViewContr jsCommContr jsCommContr jsCommContr
和
<!-- js mac method name resolver -->
<bean id="paramResolver" class="org.springframework.web.servlet.mvc.multiaction.PropertiesMethodNameResolver">
<property name="mappings">
<props>
<prop key="/login1.html">entry</prop>
<prop key="/home.html">homePage</prop>
<prop key="/login.html">login</prop>我还在JSCommonController.java包中向com.jaspersoft.jasperserver.war.control添加了以下代码。
公共ModelAndView login1(HttpServletRequest req,HttpServletResponse res)抛出ServletException { setupLoginPage(req); 返回新的ModelAndView (“模块/登录/登录”);} public ModelAndView login2(HttpServletRequest req,HttpServletResponse res)抛出ServletException { setupLoginPage(req); 返回新的ModelAndView(“模块/登录/登录”);}
我在重新构建服务器之后部署了服务器。但当我进入
localhost:8080/jasperserver/login1.html
它带我去
localhost:8080/jasperserver/login.html
在登录到这个页面后,我需要
localhost:8080/jasperserver/login1.html
但是,当我尝试登录此页面时,登录事件会成功地发生,但它会使我保持在同一个页面上。
有人知道如何在jasper服务器中添加多个登录页面吗??请帮帮我。
谢谢。
发布于 2013-05-15 07:29:14
我找到了一条路:),答案如下:
添加新登录页的过程:创建一个新的登录jsp页面。示例jasperserver-war/src/main/webapp/WEB-INF/jsp/modules/login/将其保存在entry.jsp中,在匿名页面部分的jasper-servlet.xml中的urlHandlerMapping bean部分中添加页面属性条目,如下所示:
<bean id="urlHandlerMapping" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="properties">
<props>
<prop key="/fileview/**">jsFileViewContr</prop>
<!-- anonymous pages -->
<prop key="/entry.html">jsCommContr</prop>
<prop key="/login.html">jsCommContr</prop>
<prop key="/logout.html">jsCommContr</prop>还在paramResolver bean部分的同一个文件中添加以下代码。
<bean id="paramResolver" class="org.springframework.web.servlet.mvc.multiaction.PropertiesMethodNameResolver">
<property name="mappings">
<props>
<prop key="/entry.html">entry</prop>
<prop key="/home.html">homePage</prop>
<prop key="/login.html">login</prop><prop key="/entry.html">jsCommContr</prop>这将调用控制器servlet,它被映射为
<bean id="jsCommContr" class="com.jaspersoft.jasperserver.war.control.JSCommonController">在com.jaspersoft.jasperserver.war.control.JSCommonController.java中添加以下代码
公共ModelAndView条目(HttpServletRequest req,HttpServletResponse res)抛出ServletException { setupLoginPage(req); 返回新的ModelAndView(“模块/登录/条目”);}
这将从文件夹模块/登录/ url的文件夹加载entry.jsp。
localhost:8080/jasperserver/entry.html
我们还必须在applicationContext web.xml中将此页面条目添加到filterInvocationInterceptor bean中。
修改applicationContext-security.xml如下:
<bean id="filterInvocationInterceptor" class="org.springframework.security.intercept.web.FilterSecurityInterceptor">
<property name="authenticationManager">
<ref bean="authenticationManager"/>
</property>
<property name="accessDecisionManager">
<ref bean="httpRequestAccessDecisionManager"/>
</property>
<!-- <property name="runAsManager"><ref bean="runAsManager"/></property> -->
<property name="objectDefinitionSource">
<value>
CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
PATTERN_TYPE_APACHE_ANT
/entry.html=ROLE_ANONYMOUS,ROLE_USER,ROLE_ADMINISTRATOR
/login.html=ROLE_ANONYMOUS,ROLE_USER,ROLE_ADMINISTRATOR
/logout.html=ROLE_ANONYMOUS,ROLE_USER,ROLE_ADMINISTRATOR,IS_AUTHENTICATED_FULLY再次构建war文件并将其重新部署到服务器上。现在你可以用
localhost:8080/jasperserver/entry.html
作为登录页面。若要更改登录页的UI,请自定义entry.jsp和pageSpecific.css。
档案地点:
/jasperserver/jasperserver-war/src/main/webapp/WEB-INF/jsp/modules/login/entry.jsp :- entry.jsp
jasperserver-servlet.xml :- /jasperserver/jasperserver-war/src/main/webapp/WEB-INF/jasperserver-servlet.xml
物理路径: /jasperserver/jasperserver-war-jar/src/main/java/com/jaspersoft/jasperserver/war/control/JSCommonController.java包路径: com.jaspersoft.jasperserver.war.control/ JSCommonController
应用程序上下文-安全性-web.xml :- /jasperserver/jasperserver-war/shared-config/applicationContext-security-web.xml
https://stackoverflow.com/questions/16545215
复制相似问题