Encrypting input parameters in URL of Details Screen in Reactive App
Question
Application Type
Reactive
Service Studio Version
11.11.8 (Build 45664)

Hi,

I have a requirement, where  I want my Input parameters in an encrypted form.

Currently : URL looks like

Instead of BookingId=1 I want BookingId=(Encrypted)

I gone through these solutions related to GUID : https://www.outsystems.com/forums/discussion/39302/guid-generator/ 

And I want to achieve these requirement without any forge component like CryptoAPI.
can some one help me, how can I implement this requirement.


Thanks,

Palle Vijay Bhaskar Reddy

Hello Vijay,

sorry  i just check you mention you need without forge component so i deleted my post 

if you still want that answer here i have attached Component URL and OML for your reference

https://www.outsystems.com/forge/component-overview/956/crypto-aes

thanks 

Akshay Deshpande

EncryptedDecrypted.oml

Hello Vijay,

Following are the steps to achieve this functionality:-

1) Add one attribute( Datatype = Text) in your entity.

2) Call the GenerateGuid function in to your create entity record server action. Assign the output of the GenerateGuid to the newly added attribute and call the create record action.

3) When you are passing the input parameter to the screen it should be of text datatype and the filter the same in the detail screen aggregate with the attribute we added in the entity.

Thanks and Regards,

Pavan Rajapurkar


SampleURL.PNG

Thanks Pavan,

Exact requirement which I need without any forge component.

mvp_badge
MVP

Hi Palle Vijay Bhaskar Reddy,

I suggest you read this article from OutSystems MVP Justin James on how to "hide" IDs in URLs. 

He wrote it a while ago based on URLs in Traditional Web Apps, but the same method applies for Reactive Web Apps.

Regards,

Nordin

Hi Nordin,

After going through the post, I would like to implement using GUID but I don't have any idea how to implement this using GUID as id parameter, can you please share the steps for implementing this.

Thank you.

mvp_badge
MVP

The instructions are pretty clearly described in the article:

In situations where you need to keep the ID “unguessable” (in fancy computer science terms, “non-deterministic”), add an Attribute to your Entity of type “Text”, make sure that you create an index on it, and populate it with the “GenerateGuid” Action (from “System”). Then, use this GUID as your ID that goes in the URL, and change your queries to query against this new Attribute.

Regards,

Nordin

Hi Vijay,

You can also store the ID with a unique GUID on a database and send the GUID to the new screen.
In the new screen you can lookup the ID in the database by filtering the GUID. I would also recommend a creation time and timer to delete old GUIDs. You could improve security by limiting the time that is allowed to use the guid by filtering creationtime is within couple of seconds.

Good luck!

Hello Vijay ,

I am also agree with the nordin,

if you have just issue related to the URL parameter than i have one more suggestion to you that 

you will set non-mandatory (but you will need to pass the booking id) as input parameter so it will not display in the URL. 

Thanks and Regards,

Akshay Deshpande.

Hi Akshay,

I'm checking the previous answer which you had posted, Sorry I don't know why deleted.
Link : https://akshayproject.outsystemscloud.com/EncryptedDecrypted/

but I haven't found the forge component which you mentioned CryptoAES

Thank you

Hello Vijay,

sorry  i just check you mention you need without forge component so i deleted my post 

if you still want that answer here i have attached Component URL and OML for your reference

https://www.outsystems.com/forge/component-overview/956/crypto-aes

thanks 

Akshay Deshpande

EncryptedDecrypted.oml

Thanks Akshay

I tried with a forge component and I got it as per my requirement.
But I'm trying to get without forge component.

Hello Vijay,

Following are the steps to achieve this functionality:-

1) Add one attribute( Datatype = Text) in your entity.

2) Call the GenerateGuid function in to your create entity record server action. Assign the output of the GenerateGuid to the newly added attribute and call the create record action.

3) When you are passing the input parameter to the screen it should be of text datatype and the filter the same in the detail screen aggregate with the attribute we added in the entity.

Thanks and Regards,

Pavan Rajapurkar


SampleURL.PNG

Thanks Pavan,

Exact requirement which I need without any forge component.

Community GuidelinesBe kind and respectful, give credit to the original source of content, and search for duplicates before posting.