java – 使用spring ws支持的webapplication进行会话管理

前端之家收集整理的这篇文章主要介绍了java – 使用spring ws支持的webapplication进行会话管理前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试创建一个web应用程序,它将使用js前端并在后端调用 Spring WS.假设这是一个购物网站类型的网站.所以,我可以使用OrderService InventoryService ShippingService等服务.唯一需要会话的是用户的购物车.现在,就这个购物车而言,使用servlet容器进行会话管理是否有意义?或者,我是否应该将会话信息持久存储到数据库

使用WebServices进行会话管理时,最佳做法是什么?我想,最好的做法是保持服务无状态,但如果我有无状态的web服务,如何授权用户呢?

使用servlet容器进行会话管理然后让不同的控制器充当web服务的代理是一种很好的做法吗?

我附上一张图片,让你更好地理解背景.

解决方法

If webservice is stateless,how do I know that an ajax request is authorized? How do I know that ajax request is coming from user1 of webapp1,who is authorized? and not from user2 of webapp2,who is not authorized to access the service?

好问题.快速回答是:

>对于基本身份验证:用户名:密码为base64编码,并存储在客户端发送的每个请求的Authorization http标头中.见this wiki entry.标题如下所示:

授权:基本QWxhZGRpbjpvcGVuIHNlc2FtZQ ==

使用spring security,配置可以是这样的:

<http pattern="/api/**" create-session="stateless">
        <intercept-url pattern='/**' access="hasRole('REMOTE')" />
        <http-basic />
    </http>

>对于WS的基于表单的身份验证,请查看this article.

>首先,您向/ j_spring_security_check发送了一个帖子请求.此请求将返回Cookie,然后将由任何后续请求对Web服务使用.在这里,他们将其存储在文本文件中:

curl -i -X POST -d j_username = user -d j_password = userPass -c /tmp/cookies.txt
http://localhost:8080/app/j_spring_security_check
>然后,您可以使用文件中的cookie进行进一步的身份验证请求:

curl -i –header“Accept:application / json”-X GET -b /tmp/cookies.txt
http://localhost:8080/app/api/foos

xml spring安全配置可能如下所示:

<http pattern="/api/**" create-session="stateless">
        <intercept-url pattern='/**' access="hasRole('REMOTE')" />
        <form-login />
    </http>

猜你在找的Java相关文章