java - 使用自定义登录对话框的 GWT 和 Spring 安全集成

标签 java security spring gwt authentication

我有 GWT 应用程序,我想使用 Spring Security 来保护它。我有自定义弹出窗口,其中放置了基于 UI Binder 的登录公式。我想使用 RPC 方法将凭据发送到服务器,然后根据数据库对用户进行身份验证。那可能吗?

最佳答案

是的,这是可能的,但您必须考虑到,GWT 应用程序被编译为 JavaScript 并作为整个包发送到客户端。因此,不能使用 SI 限制对不从服务器检索数据的“静态”位置的访问,因为所有信息从一开始就在客户端可用。但是,所有请求工厂服务(或您使用的其他协议(protocol))都可以使用 Spring Security 进行保护。如果您使用请求工厂,您必须做几件事:

  1. 与使用 Spring Security 的任何其他应用程序一样实现安全机制 - 您必须公开 j_spring_security_check端点允许用户在服务级别进行身份验证并添加适当的 SI 注释(如果需要身份验证/授权设置)
  2. 覆盖DefaultRequestTransport createRequestCallback(RequestTransport.TransportReceiver receiver)方法以便能够处理 403/401 服务器响应。
  3. 引入登录页面,将用户提供的凭据发送到 j_spring_security_check 。您可以使用 GWT RequestBuilder很容易做到。

就是这样!

编辑: 当然,spring 必须知道您所保护的服务(必须存在于其容器内)。

关于java - 使用自定义登录对话框的 GWT 和 Spring 安全集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9558276/

相关文章:

java - 为 XYAreaChart 设置 "auto"范围

java - java中密码的加密和解密

java - charAt(0) 给出 java.lang.StringIndexOutOfBoundsException

python - 如何使用密码保护 Google App Engine 应用程序?

security - 保护 JBoss 5.1.0.GA 中的 JMXConnectorServerService (jmx-remoting.sar) 安全

spring - MapStruct 未注入(inject) Kotlin 项目中

spring - 单个用户的 Websocket 过滤消息

java - 使用 Jackson (ObjectMapper) 如何将对象序列化为 json 并忽略除我注释为 @JsonProperty 的字段之外的所有字段?

java - Oracle 是否会在 JRE 7 update 51 上终止内部网小程序?

java - spring中的hibernate不保存mysql数据库