我正在使用JDBCRealm用于Tomcat 7用户身份验证和SSL用于https但我无法弄清楚如何将它们组合在一起。我的目标是通过SSL使所有页面安全,并且只能通过某个角色查看。我正在使用JSF 2.1。这是我在web.xml中的代码
<security-role>
<description/>
<role-name>employee</role-name>
</security-role>
<security-role>
<description/>
<role-name>administrator</role-name>
</security-role>
<security-role>
<description/>
<role-name>boss</role-name>
</security-role>
<security-constraint>
<display-name>ConstraintPrac</display-name>
<web-resource-collection>
<web-resource-name>panelprac</web-resource-name>
<url-pattern>panele/pracownik/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>employee</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
他们似乎分开工作,但我需要的是一种综合方式。现在Tomcat没有重定向到端口8443(https),只需在浏览器中输入即可访问任何页面。我将此页面用于SSL http://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html,此页面用于JDBCRealm http://tomcat.apache.org/tomcat-7.0-doc/realm-howto.html。我希望我的程序只允许某些页面访问某些角色,同时在HTTPS上执行所有操作。请帮帮我这个。我不知道我犯了什么错误。我没有收到任何错误。
分辨
问题比我想象的要深。 Tomcat 7不支持自定义表单用户身份验证,因此上面提供的安全角色不起作用。为了解决这个问题,我必须创建一个Filter类来保护未经授权的页面入口。
我会留下这个话题以防有人遇到同样的问题(如果管理员发现这个话题无关紧要可以随意删除)