加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 06:00:10 所属栏目:Java 来源:网络整理
导读:我正在尝试创建一个web应用程序,它将使用js前端并在后端调用 Spring WS.假设这是一个购物网站类型的网站.所以,我可以使用OrderService InventoryService ShippingService等服务.唯一需要会话的是用户的购物车.现在,就这个购物车而言,使用servlet容器进行会话
我正在尝试创建一个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>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读