1

有什么区别:

<auth-constraint><role-name>tomcat</role-name></auth-constraint>

和:

<security-role><role-name>tomcat</role-name></security-role>

在安全约束声明中?

例如,如果我如下定义 BASIC 身份验证,我应该使用哪个?

<login-config><auth-method>BASIC</auth-method></login-config>
4

1 回答 1

1

根本区别在于认证机制这是由 auth-method 解决的 - 身份验证是应用程序确认“你真的是你所说的人吗?”的手段。- 身份验证机制可以有多种类型,但有一些是由标准 servlet 容器开箱即用的 - 您已经指出是 BASIC - 这是提示浏览器提示登录对话框的原因 - 这个理想情况下不应该在 prod 场景中使用,因为它会将您的凭据以纯文本格式传输到服务器,而且它在我知道的任何浏览器中都无法自定义。通常在生产场景中,FORM 与在服务器或其他基础设施层设置 SSL 一起使用。FORM 是高度可定制的,并且在使用 servlet Web 容器身份验证的开箱即用功能时最受欢迎。

角色名称是一个抽象,最终将被应用程序代码用于执行授权。“好吧,你就是你所说的那个人,但你是否可以访问这个页面、按钮或 Web 应用程序?” - 应用程序如何在内部处理这不是一个问题,但这里涉及声明性(基于注释)Servlet API服务器特定映射。这是一种以编程方式执行此操作的方法-如何在 JSP / Servlet 中获取用户角色

于 2015-04-10T17:13:55.193 回答