Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to replace string values with "XXXXX" in java?

I want to replace particular string values with "XXXX". The issue is the pattern is very dynamic and it won't have a fixed pattern in input data.

My input data

https://internetbanking.abc.co.uk/personal/logon/login/?userId=Templ3108&password=Got1&reme

I need to replace the values of userId and password with "XXXX".

My output should be -

https://internetbanking.abc.co.uk/personal/logon/login/?userId=XXXX&password=XXXX&reme

This is an one off example. There are other cases where only userId and password is present -

userId=12345678&password=stackoverflow&rememberID=

I am using Regex in java to achieve the above, but have not been successful yet. Appreciate any guidance.

[&]([^\\/?&;]{0,})(userId=|password=)=[^&;]+|((?<=\\/)|(?<=\\?)|(?<=;))([^\\/?&;]{0,})(userId=|password=)=[^&]+|(?<=\\?)(userId=|password=)=[^&]+|(userId=|password=)=[^&]+

PS : I am not an expert in Regex. Also, please do let me know if there are any other alternatives to achieve this apart from Regex.

like image 929
Shash Avatar asked Dec 08 '22 10:12

Shash


1 Answers

This may cover given both cases.


String maskUserNameAndPassword(String input) {
    return input.replaceAll("(userId|password)=[^&]+", "$1=XXXXX");
}

String inputUrl1 = 
    "https://internetbanking.abc.co.uk/personal/logon/login/?userId=Templ3108&password=Got1&reme";

String inputUrl2 = 
    "userId=12345678&password=stackoverflow&rememberID=";

String input = "https://internetbanking.abc.co.uk/personal/logon/login/?userId=Templ3108&password=Got1&reme";

String maskedUrl1 = maskUserNameAndPassword(inputUrl1);
System.out.println("Mask url1: " + maskUserNameAndPassword(inputUrl1));

String maskedUrl2 = maskUserNameAndPassword(inputUrl1);
System.out.println("Mask url2: " + maskUserNameAndPassword(inputUrl2));

Above will result:

Mask url1: https://internetbanking.abc.co.uk/personal/logon/login/?userId=XXXXX&password=XXXXX&reme
Mask url2: userId=XXXXX&password=XXXXX&rememberID=
like image 153
wpnpeiris Avatar answered Jan 03 '23 01:01

wpnpeiris