将post
个请求发送到某个/login
个网址,其中包含有效的username
和password
个参数。
应该回应什么?它必须包含jsessionid或/和其他信息吗?
Spring安全性如何识别当前用户?它是使用jsessionid
过滤还是“查看”其他信息(客户标题,Cookie等)?通过“jsessionid
过滤”我的意思(可能是错误的)当用户登录成功弹出安全保存jsessionid
到成功的身份验证会话列表并保存其他信息(如角色) )进入会话对象。它是否有效?
如果有人通过身份验证逐步提供原始 http请求/响应,那将是很好的,例如post
请求应该包含什么以及相应的响应包含什么。此外,对安全资源的请求需要包含(某些标题,cookie,jsession或其他)?
答案 0 :(得分:2)
我会尽力帮助你:
第一个:响应为该路径设置了一个cookie,在我的情况下,我的应用程序位于localhost:port/CambioClaveDist
,因此当SpringSecurity对我的用户进行身份验证时,它会为该路径创建一个新的JSESSIONID: Set-Cookie:"JSESSIONID=96ABDF25EE278DD69DD1A0400702E416; Path=/CambioClaveDist"
第二: Spring使用JSESSIONID识别经过身份验证的用户,是的。
第三:我有一个http请求/帖子示例:
身份验证帖子:
POST http://localhost:8080/CambioClaveDist/j_spring_security_check
Host: localhost:8080
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://localhost:8080/CambioClaveDist/index.htm?logout=true
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 92
_csrf=fbd07004-cc30-4ef6-9bfb-a00ae8f8819f&username=user&password=pass&sSubmit=Enviar
请求受保护的网址:
GET http://localhost:8080/CambioClaveDist/main/index.htm
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://localhost:8080/CambioClaveDist/index.htm?logout=true
Cookie: JSESSIONID=96ABDF25EE278DD69DD1A0400702E416
Connection: keep-alive