Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在SpringRESTful中实现安全性?_Spring_Extjs_Spring Security_Restful Architecture - Fatal编程技术网

如何在SpringRESTful中实现安全性?

如何在SpringRESTful中实现安全性?,spring,extjs,spring-security,restful-architecture,Spring,Extjs,Spring Security,Restful Architecture,我正在开发一个web应用程序,在客户端使用RESTFUL,在服务器端使用RESTFUL 我的服务器应用程序是RESTFUL。我在spring应用程序中甚至没有一个页面 客户端向服务器发送一个AJAX请求,然后服务器响应它。我想将身份验证和授权添加到我的应用程序中。当用户打开web应用程序(Extjs页面)时,它会发送一个Ajax请求,以查看是否可以转到仪表板页面?服务器仅获取true或false。如果服务器返回true,Extjs可以向用户请求数据。但若服务器返回false,它将进入登录页面。在

我正在开发一个web应用程序,在客户端使用RESTFUL,在服务器端使用RESTFUL

我的服务器应用程序是RESTFUL。我在spring应用程序中甚至没有一个页面

客户端向服务器发送一个AJAX请求,然后服务器响应它。我想将身份验证授权添加到我的应用程序中。当用户打开web应用程序(Extjs页面)时,它会发送一个Ajax请求,以查看是否可以转到仪表板页面?服务器仅获取
true
false
。如果服务器返回
true
,Extjs可以向用户请求数据。但若服务器返回
false
,它将进入登录页面。在登录页面中,用户输入
用户名
密码
,然后单击登录按钮,然后向登录发送ajax请求

在服务器端,每收到一个请求,它都会检查用户之前是否登录,返回合适的响应,否则返回405错误

如何使用spring security实现这一点

注意

我不想使用基本身份验证。我想用Extjs创建一个登录表单,然后发送一个Ajax请求进行身份验证

我假设您具备Spring安全性的基本知识

一个使用SpringSecurity的典型web应用程序,它对用户进行身份验证,并根据结果决定是发送安全页面(如果成功)还是发送登录页面(如果失败)

但在这种情况下,即在REST应用程序中,响应通常是JSON格式的。因此,我们无法将视图/页面发送回客户端。我们需要发送JSON

您可以做的是重写并实现自己的自定义身份验证处理程序和身份验证入口点。在这些自定义处理程序中,您可以向客户端发送自定义JSON响应

您可以实现以下接口:

  • AuthenticationEntryPoint:身份验证失败时调用。返回未经授权的状态
  • AuthenticationSuccessHandler:您可以在AuthenticationSuccess方法中处理成功的身份验证响应
  • AuthenticationFailureHandler:顾名思义,它用于处理身份验证失败。使用
    onAuthenticationFailure
    方法来保管失败响应
  • LogoutSuccessHandler:使用
    onLogoutSuccess
    方法自定义注销行为
示例:




您可以查看实现无状态Spring安全身份验证的链接

@morteza malvandi向我们展示您迄今为止所做的工作,比如代码片段或其他。也许这会有帮助。