In .NET Core you have an option to extend a session using a "sliding expiration". This means that if over half the time has passed and the user actively uses their session then the expiry timer gets reset and the user remains logged in. This can lead to the curious situation where you have an active authenticated user with an expired access token being used in data-access requests.

0   0 1
0

comments

14

views

0

rating

The .NET Core Identity model has an IPasswordHasher<> interface for  for 

  • Hashing a password so that it can be stored in a database
  • Verifying a provided plain-text password matches a previously stored hash. 

I am getting invalid password errors during the login process when the .NET Core Identity model computes a hash from a plain text input and compares it to a password hash value I've returned from Caché. The default hashing algorithm is PBKDF2 with HMAC-SHA256, 128-bit salt, 256-bit subkey, and 10,000 iterations (detailed article on .NET Core Identity PasswordHasher). The algorithm Caché uses is probably different which may be why I am getting errors.

Last answer 21 August 2019 Last comment 23 August 2019
0   1 2
102

views

0

rating

I have an OAuth 2.0 development environment where Caché is serving all three roles as the Authorization Server, Client and Resource Server based on a great 3-part series on OAuth 2.0 by @Daniel Kutac. I have a simple password grant type where an x-www-form-urlencoded body (as described in this post) is sent as a POST to the token endpoint at https://localhost:57773/oauth2/token and a response body with a HTTP Response 200 header is returned. The response body looks something like this.

Last answer 13 August 2019 Last comment 13 August 2019
+ 1   0 3
97

views

+ 1

rating

I think I already know the answer to this but I thought I'd ask anyway. So the Node.js adapter allows you to perform operations directly on Globals. Does the InterSystems.Data.CacheClient.dll or InterSystems.CacheExtreme.dll provide a mechanism to access Gobals directly or are you accessing globals via Caché ObjectScript classes?

Last answer 9 October 2018 Last comment 18 October 2018
0   0 2
243

views

0

rating

You have a global ^CODE("TNO","BIO",291,"AKI") that may or may not exist. On the data side of the global ref it can have  a boolean value of 0 (false) or 1 (true) and this global is wrapped up in a Caché class accessible from myobject.AKI property. At the object level, how do you check whether the property is defined ie. is there a $DATA equivalent for Cache Object properties? Also, how would you kill /null the property as opposed to making the value  0 (false) or an empty string?

Last answer 4 October 2018 Last comment 4 October 2018
0   0 3
518

views

0

rating

404 Not Found

{
"error": {
 "errors": [
  {
   "domain": "global",
   "reason": "notFound",
   "message": "Not Found"
  }
 ],
 "code": 404,
 "message": "Not Found"
 }
}

I want to do something like the above sample from a Google Storage JSON API. I have a call to Write obj.%ToJSON() followed by return ..ReportHttpStatusCode(..#HTTP404NOTFOUND) however the HTTP Status code is always 200.  If I remove the Write obj.%ToJSON() statement it returns a 404 status with no body. How do I return both?

Last answer 19 September 2018
0   0 3
0

comments

375

views

0

rating

When I delete a class package, it seems to delete it from my workspace but the delete action is not synchronized with the server. Is there a way to delete this package both locally and on the connected server within Atelier?

#UPDATE - Added product version information
Atelier version: 1.2.118 (Beta)
Caché $ZV: Cache for UNIX (IBM AIX for System Power System-64) 2017.2 (Build 744) Fri Sep 29 2017 11:04:53 EDT

Last answer 22 June 2018 Last comment 22 June 2018
0   0 3
158

views

0

rating

In Studio, you can open the inspector and view the SQL Storage Map on %Persistent classes. Can you do this in Atelier or do you have to read the XML text? If it doesn't currently exist, are there plans to include it? The inability to perform certain functions in Atelier that can be done in Studio can be a 'point of conflict' when asking/forcing/encouraging developers to move to Atelier.

Last answer 19 June 2018
+ 1   0 3
0

comments

153

views

+ 1

rating