public void BypassOAuthForTemporaryAccessToken() { var restClient = new JsonServiceClient (testServer.ListenUrl); var req = new OAuthTemporaryAccessTokenRequest (); req.Username = RainyTestServer.TEST_USER; req.Password = RainyTestServer.TEST_PASS; var token = restClient.Post<OAuthTemporaryAccessTokenResponse> ("/oauth/temporary_access_token", req); Assert.That (!token.AccessToken.StartsWith ("oauth_")); Assert.GreaterOrEqual (400, token.AccessToken.Length); }
public void BypassOAuthForTemporaryAccessToken() { var restClient = new JsonServiceClient(testServer.ListenUrl); var req = new OAuthTemporaryAccessTokenRequest(); req.Username = RainyTestServer.TEST_USER; req.Password = RainyTestServer.TEST_PASS; var token = restClient.Post <OAuthTemporaryAccessTokenResponse> ("/oauth/temporary_access_token", req); Assert.That(!token.AccessToken.StartsWith("oauth_")); Assert.GreaterOrEqual(400, token.AccessToken.Length); }
public object Post(OAuthTemporaryAccessTokenRequest request) { string username = request.Username; string password = request.Password; if (request.Expiry == 0) request.Expiry = 60 * 24; // expiry = 1d if (request.Expiry >= 43200) // >= 30d throw new InvalidRequestDtoException {ErrorMessage = "Expiry cannot exceed 30 days (43200 minutes)"}; DateTime expiry = DateTime.Now.AddMinutes (request.Expiry); try { if (userIsAllowed (username, password, out username)) { var access_token = GenerateAccessToken (username, password, expiry); // save the access token var db_access_token = access_token.ToDBAccessToken (); // shorten the token for crypto db_access_token.Token = access_token.Token.ToShortToken (); using (var db = connFactory.OpenDbConnection ()) { db.Save<DBAccessToken> (db_access_token); } return new OAuthTemporaryAccessTokenResponse { AccessToken = access_token.Token, ValidUntil = expiry }; } else throw new Rainy.ErrorHandling.UnauthorizedException (); } catch (Exception e) { Logger.Debug(e.Message); throw e; } }