sup*_*ndr 6 security rest spring-boot jhipster
我需要了解如何验证REST客户端(可能是Paw,可能是一个Android应用程序,一个使用AFNetworking与jHipster的iOs应用程序,我想,更一般来说,弹簧启动,我不是专家).
虽然我在登录浏览器时能够获取令牌,并在随后的请求中使用此令牌,但我不知道如何使用RESTful最佳实践进行身份验证.
例如,在Paw.app中,我可以传递基本身份验证或Oauth2,但我不明白如何让会话令牌像我在Web浏览器上那样简单地进行身份验证.
同样,在AFNetworking中,我能够通过基本身份验证,例如
NSString*auth=[NSString stringWithFormat:@"%@:%@", @"admin", @"admin"];
NSString *authValue = [NSString stringWithFormat:@"Basic %@", [auth base64EncodedString]];
[manager.requestSerializer setValue:authValue forHTTPHeaderField:@"Authorization"];
Run Code Online (Sandbox Code Playgroud)
但我很难理解如何使用jHipster/spring boot中捆绑的会话安全性进行身份验证.
这里总结了我如何实施该解决方案。它\xe2\x80\x99是真正的swift代码,但请将其视为伪代码,因为它可能不正确。
\n\n调用您需要调用的任何方法,在该方法中传递成功时的回调(块或等效项)和失败时的回调(块或等效项)
\n\nfunc action(\n URLString:String,\n method:Method,\n encoding:Encoding = .JSON,\n parameters:[String : AnyObject]?,\n success:(statusCode:Int, responseObject:AnyObject)->Void,\n failure:(statusCode:Int, error:NSError)->Void\n)\n
Run Code Online (Sandbox Code Playgroud)在方法 es 内。/events
您处理特定的失败情况,即状态代码为 401 时。
if(r!.statusCode==ResponseCodes.HTTP_UNAUTHORIZED.rawValue){\n\n loginAndAction(URLString, method: method, encoding: encoding, parameters: parameters, success: success, failure: failure)\n\n }else{\n\n failure(statusCode: response.response!.statusCode, error:response.result.error!)\n\n }\n
Run Code Online (Sandbox Code Playgroud)在这种特殊情况下,您不是返回结果并调用失败回调,而是调用一个 login() 方法,该方法在必要的参数之后接受原始success()
回调
func loginAndAction(\n URLString:String,\n method:Method,\n encoding: Encoding,\n parameters:[String:AnyObject]?,\n success:(statusCode:Int, responseObject:AnyObject)->Void,\n failure:(statusCode:Int, error:NSError)->Void\n )->Void\n
Run Code Online (Sandbox Code Playgroud)如果认证成功
\n\nvar d:[String:AnyObject] = response.result.value as! [String:AnyObject]\nself.authToken = d["access_token"] as! String\n\naction(URLString, method: method,encoding:encoding, parameters: parameters, success: success, failure: failure)\n
Run Code Online (Sandbox Code Playgroud)此时,方法操作可以使用正确的工作令牌。
\n\n这应该每天只发生一次(基于令牌过期),并且它是适用于 oauth2 的机制refresh_token
call.
归档时间: |
|
查看次数: |
5497 次 |
最近记录: |