我有 GWT 应用程序,我想使用 Spring Security 来保护它。我有自定义弹出窗口,其中放置了基于 UI Binder 的登录公式。我想使用 RPC 方法将凭据发送到服务器,然后根据数据库对用户进行身份验证。那可能吗?
最佳答案
是的,这是可能的,但您必须考虑到,GWT 应用程序被编译为 JavaScript 并作为整个包发送到客户端。因此,不能使用 SI 限制对不从服务器检索数据的“静态”位置的访问,因为所有信息从一开始就在客户端可用。但是,所有请求工厂服务(或您使用的其他协议(protocol))都可以使用 Spring Security 进行保护。如果您使用请求工厂,您必须做几件事:
- 与使用 Spring Security 的任何其他应用程序一样实现安全机制 - 您必须公开
j_spring_security_check
端点允许用户在服务级别进行身份验证并添加适当的 SI 注释(如果需要身份验证/授权设置) - 覆盖DefaultRequestTransport
createRequestCallback(RequestTransport.TransportReceiver receiver)
方法以便能够处理 403/401 服务器响应。 - 引入登录页面,将用户提供的凭据发送到
j_spring_security_check
。您可以使用 GWT RequestBuilder很容易做到。
就是这样!
编辑: 当然,spring 必须知道您所保护的服务(必须存在于其容器内)。
关于java - 使用自定义登录对话框的 GWT 和 Spring 安全集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9558276/