我想为单个jasperserver添加多个登录页面。 我已自定义代码并在moudles / login /文件夹中添加了login1.jsp和login2.jsp。 我还在\ jasperserver-war \ src \ main \ webapp \ WEB-INF \ jasperserver-servlet.xml中添加了以下代码
bean id =“urlHandlerMapping”class =“org.springframework.beans.factory.config.PropertiesFactoryBean”>
<property name="properties"> <props> <prop key="/fileview/**">jsFileViewContr</prop> <!-- anonymous pages --> <prop key="/login1.html">jsCommContr</prop> <prop key="/login.html">jsCommContr</prop> <prop key="/logout.html">jsCommContr</prop>
和
<!-- 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>
我还在com.jaspersoft.jasperserver.war.control包中的JSCommonController.java中添加了以下代码。
public ModelAndView login1(HttpServletRequest req,HttpServletResponse RES) 抛出ServletException { setupLoginPage(REQ);
return new ModelAndView("modules/login/login"); }
public ModelAndView login2(HttpServletRequest req,HttpServletResponse RES) 抛出ServletException { setupLoginPage(REQ);
return new ModelAndView("modules/login/login"); }
我在重建后部署了服务器。 但是当我进入
本地主机:8080 /的JasperServer / login1.html
它需要我
本地主机:8080 /的JasperServer / login.html的
登录此页后,我需要
本地主机:8080 /的JasperServer / login1.html
但是当我尝试登录此页面时,登录事件会成功发生,但它会让我保持同一页面。
有人知道如何在jasper服务器中添加多个登录页面吗? 请帮帮我。
感谢。
答案 0 :(得分:1)
我找到了它的方法:)并且答案如下:
添加新登录页面的步骤 创建一个新的登录jsp页面。 entry.jsp示例 将它保存在jasperserver-war / src / main / webapp / WEB-INF / jsp / modules / login / 在匿名页面部分的jasper-servlet.xml中的urlHandlerMapping bean部分中添加page属性条目,如下所示:
<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中添加以下代码
public ModelAndView条目(HttpServletRequest req,HttpServletResponse RES) 抛出ServletException { setupLoginPage(REQ);
return new ModelAndView("modules/login/entry"); }
这将从文件夹modules / login / folder为url
加载entry.jsp本地主机:8080 /的JasperServer / entry.html
我们还必须将此页面条目添加到applicationContext-security-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文件并将其重新部署到服务器上。 现在你可以使用
本地主机:8080 /的JasperServer / entry.html
作为登录页面。 要更改登录页面的UI,请自定义entry.jsp和pageSpecific.css。
文件位置:
entry.jsp: - /jasperserver/jasperserver-war/src/main/webapp/WEB-INF/jsp/modules/login/entry.jsp
jasperserver-servlet.xml: - /jasperserver/jasperserver-war/src/main/webapp/WEB-INF/jasperserver-servlet.xml
JSCommonController.java: - 物理路径:/jasperserver/jasperserver-war-jar/src/main/java/com/jaspersoft/jasperserver/war/control/JSCommonController.java 包路径:com.jaspersoft.jasperserver.war.control / JSCommonController
applicationContext-security-web.xml: - /jasperserver/jasperserver-war/shared-config/applicationContext-security-web.xml