我正在开发一个Web应用程序,它将包含两个不同的部署:一个包含具有REST端点的服务层(服务,数据库访问等),另一方面是仅具有表示层的UI层基于通过使用服务层的REST端点检索的数据。
我使用Spring开发这两个应用程序,因此自然的想法是使用Spring Security保护应用程序。
但我怎么去实现呢?我想登录页面应该在UI层上,但我如何通过这两个应用程序共享安全问题?是否有类似案例的参考书目?
请注意,这两个部署不一定位于同一个容器中。
答案 0 :(得分:0)
通常,REST服务层在具有身份验证概念的单独服务器上运行,例如Spring安全支持的基本或摘要式身份验证。
REST服务的客户端将使用REST登录服务对自身进行身份验证,并通过在请求旁边传递会话令牌来进行更多请求,或者更频繁地使用REST API密钥对每个请求进行签名,这些请求已预先分配给每个请求客户。
在这种情况下,REST服务的客户端是服务于登录页面和Web应用程序的任何其他页面的前端服务器,以及对ajax请求的页面的回复,这些页面无法直接转到REST服务器相同的原产地政策。
这种方式有两种独立的spring安全设置:REST端的基本身份验证/摘要/自定义身份验证,以及前端服务器端的表单登录身份验证。
用户向前端服务器标识自己,前端服务器向REST服务器标识自己。提供给页面的数据可能是多个REST调用的组合。