问题描述
我在 spring/spring-mvc 中有一个完全使用 JSON 通信的应用程序.现在我需要通过 JSON 使用 spring security 3(使用 LdapAuthenticationProvider)对我的应用程序进行身份验证.
I've an application in spring/spring-mvc that totally uses JSON communications.Now I need to authenticate my application with spring security 3 (that uses LdapAuthenticationProvider) via JSON.
默认的spring seurity提交表单需要这样的POST:
The default spring seurity submit form requires a POST like this:
POST /myapp/j_spring_security_check HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 32
Host: 127.0.0.1:8080
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
j_username=myUsername&j_password=myPass
但我想像这样传递一个 JSON 对象:
But I want to pass a JSON object like this:
{"j_username":"myUsername","j_password":"myPass"}
我读过很多类似this、其他 或 这个 没有运气,在所有 ajax 情况下都像上面一样完成 POST.
I read many post like this, this other or this one without luck, in all ajax cases is done a POST like above.
有什么想法吗?
推荐答案
您可以编写自己的安全过滤器来解析您的 JSON.
You can write your own security filter that will parse your JSON.
http://docs.spring.io/spring-security/site/docs/3.0.x/reference/core-web-filters.html
您可以使用 BasicAuthenticationFilter 作为参考:
You can use the BasicAuthenticationFilter as a reference:
这篇关于Spring 安全和 JSON 身份验证的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!