我有一个web应用程序,它也执行kerberos和基本身份验证.我不知道客户端的能力.因此,两个身份验证机制都在401回复中发送.
回复标题将包含,
WWW-Authenticate: Negotiate
WWW-Authenticate: Basic realm="MyREALM"
Run Code Online (Sandbox Code Playgroud)
但是,我希望客户端只有在协商失败时才能回退到基本身份验证.
我希望流程应该像,
我怎样才能做到这一点?我修改了服务器代码来执行此操作.但是不在任何域中的浏览器(它应该做基本身份验证)在步骤2之后没有响应.
我对DefaultAnnotationHandlerMapping的工作方式感到困惑.
在我的web.xml中我有
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/somePath/someWork</url-pattern>
<url-pattern>/users</url-pattern>
<url-pattern>/user/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
我有这样的控制器,
@RequestMapping(value="/user/adduser", method={RequestMethod.POST})
public void addAdmin(@ModelAttribute("myData") myData data) {
System.out.println("We reached adduser controller");
}
Run Code Online (Sandbox Code Playgroud)
在我有的jsp文件中
<form:form id="adduser" method="post" action="/user/adduser" commandName="myData">
Run Code Online (Sandbox Code Playgroud)
这不起作用.我得到错误没有为"/ adduser"找到处理程序映射,404为页面"/ user/adduser"
但是如果我提到的话,在.xml文件中
<url-pattern>/user/adduser</url-pattern>
Run Code Online (Sandbox Code Playgroud)
它工作,或者如果我使控制器像,
@RequestMapping(value="/adduser", method={RequestMethod.POST})
Run Code Online (Sandbox Code Playgroud)
也有效.提交页面时,它会到达正确的控制器.
我现在对@ReuqestMapping的工作方式很困惑.当一个请求来自"/ user/adduser"时,它将从哪里开始寻找合适的类和正确的方法?
我发现@RequestMapping在控制器类中非常有用.此基于注释的控制器将URL映射到方法而不是类.此外,我不需要膨胀spring-servlet.xml以进行处理程序映射.
但有了它,看起来只有@Autowired或@Resource才能进行依赖注入.还有其他方法吗?
在生产代码中使用@Resource有多糟糕?
1.2.1是可用的,我可以得到它
<dependency>
<groupId>org.springframework.ldap</groupId>
<artifactId>spring-ldap</artifactId>
<version>1.2.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
但我无法获得最新版本.我用过
<dependency>
<groupId>org.springframework.ldap</groupId>
<artifactId>spring-ldap</artifactId>
<version>1.3.1.RELEASE</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我有兴趣使用LdapTemplate的authenticate方法.