小编kal*_*yan的帖子

如何在Negotiate失败时从Negotiate方法回退到Basic

我有一个web应用程序,它也执行kerberos和基本身份验证.我不知道客户端的能力.因此,两个身份验证机制都在401回复中发送.

回复标题将包含,

WWW-Authenticate: Negotiate
WWW-Authenticate: Basic realm="MyREALM"
Run Code Online (Sandbox Code Playgroud)

但是,我希望客户端只有在协商失败时才能回退到基本身份验证.

我希望流程应该像,

  1. 客户请求
  2. 服务器响应WWW-Authenticate:Negotiate
  3. 客户端重新请求(具有错误的身份验证数据或带有一些标志,指示无法继续)
  4. 服务器响应再次使用WWW-Authenticate:Basic realm ="MYREALM"
  5. 客户端执行基本身份验证.

我怎样才能做到这一点?我修改了服务器代码来执行此操作.但是不在任何域中的浏览器(它应该做基本身份验证)在步骤2之后没有响应.

browser authentication http basic-authentication negotiate

7
推荐指数
1
解决办法
1389
查看次数

DefaultAnnotationHandlerMapping的工作原理

我对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"时,它将从哪里开始寻找合适的类和正确的方法?

spring spring-mvc

5
推荐指数
1
解决办法
1万
查看次数

在生产代码中使用@Resource注入有多糟糕

我发现@RequestMapping在控制器类中非常有用.此基于注释的控制器将URL映射到方法而不是类.此外,我不需要膨胀spring-servlet.xml以进行处理程序映射.

但有了它,看起来只有@Autowired或@Resource才能进行依赖注入.还有其他方法吗?

在生产代码中使用@Resource有多糟糕?

java spring dependency-injection spring-mvc

4
推荐指数
1
解决办法
405
查看次数

我在哪里可以找到spring-ldap 1.3.1-RELEASE maven repo

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方法.

spring spring-ldap

1
推荐指数
1
解决办法
2316
查看次数