在tomcat + jsf中的https之后重定向到http

时间:2010-07-01 11:48:09

标签: java tomcat jsf

我有一个登录页面,我想在https中显示。验证用户后,我想将他转回http。

所以我在web.xml中声明了

<security-constraint>
  <web-resource-collection>
   <web-resource-name>Login and Restricted Space URLs</web-resource-name>
   <url-pattern>/general/enter.jsf</url-pattern>
  </web-resource-collection>  
  <user-data-constraint>
   <transport-guarantee>CONFIDENTIAL</transport-guarantee>
  </user-data-constraint>
 </security-constraint>

 <security-constraint>
  <web-resource-collection>
   <web-resource-name>Rest of the Application</web-resource-name>
   <url-pattern>/general/home.jsf</url-pattern>
     </web-resource-collection>
  <user-data-constraint>
   <transport-guarantee>NONE</transport-guarantee>
  </user-data-constraint>
 </security-constraint>

我看到登录页面是https。

但在我的行动中:

public String doLogin() throws Exception {
  ...
  User user = service.getUserByNameAndCompany(name, company);
  ......
                return "/general/home.jsf";
 }

bean将用户重定向到

  

https:// mycomputer:8443 / MYProject / general / home.jsf

我希望它能回来

  

http://mycomputer:8080/MYProject/general/home.jsf

我该怎么做?

1 个答案:

答案 0 :(得分:2)

JSF导航会将您重定向到同一应用程序中的页面(这意味着您只能在https: //mycomputer:8080/MYProject内导航)。

您可以做的是导航到/general/redirect.jsf这样的页面,然后使用标题或javascript重定向到您想要的网址。