好的,所以我以前在经典的web.xml中使用了此技术,但是由于我正在使用WebApplicationInitializer,因此现在很难使其起作用。
我的WebApplicationInitializer包含以下代码:
HttpConstraintElement constraint = new HttpConstraintElement( TransportGuarantee.NONE, new String[]{"sponsorUsers"}); ServletSecurityElement servletSecurity = new ServletSecurityElement(constraint); dispatcher.setServletSecurity(servletSecurity);
我正在尝试对servlet中的任何资源请求的任何http方法要求基本身份验证(用户名和密码)。我得到的只是一个403-没有提示输入用户名。我的怀疑是,我需要将auth- method设置为BASIC,就像在xml中那样:
<login-config> <auth-method>BASIC</auth-method> <realm-name>User Auth</realm-name> </login-config>
但是在Java类中看不到等效项。有什么帮助吗?谢谢!
A WebApplicationInitializer基本上是Servlet 3.0的Spring扩展ServletContainerInitializer。
WebApplicationInitializer
ServletContainerInitializer
您无法做一些事情ServletContainerInitializer,或者ServletContext更具体地说,其中之一是配置一些安全组件,例如login- config。
ServletContext
login- config
相反,你可以同时拥有ServletContainerInitializer和web.xml使用属性metadata- complete设置为false。例如,
web.xml
metadata- complete
false
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" metadata-complete="false" version="3.0">
然后在其中添加<login-config>元素。
<login-config>