Can't login on Jasperserver after password encryption

Hello JasperSoft-Community,

i'm working on the encryption of the password which is sent to the jasperserver login. i've read the documentations how to use it and also how the settings in the config-file have to be (is use the dynamic key setting).

First when i want to get a report from the server, i start a method which gets the encryption key with the "localhost/GetEncryptionKey" and encrypt the password with bouncy castle for C#.

Here's the code i use for encryption (in C#, baseurl is a string: "http://localhost/jasperserver"):

public string Authenticate(string username, string password)
            bool encryptedAuthentification = false;
            string uriS = String.Format(baseurl + "/GetEncryptionKey");
            Uri uri = new Uri(uriS);
            HttpWebRequest request = (HttpWebRequest)WebRequest.CreateHttp(uri);
            request.Method = "GET";
            request.CookieContainer = cookies;
            string responseContent = "";
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            if (_returnCodes.ContainsKey(Convert.ToInt32(response.StatusCode)))
                if (_returnCodes[Convert.ToInt32(response.StatusCode)] == "ok")
                    using (StreamReader reader = new StreamReader(response.GetResponseStream()))
                        while (!reader.EndOfStream)
                            responseContent += reader.ReadLine() + "\n";
                    if (!responseContent.Contains("Error: Key generation is off"))
                        encryptedAuthentification = true;
                    if (encryptedAuthentification)
                        //encrypt password
                        BufferedAsymmetricBlockCipher abc = new BufferedAsymmetricBlockCipher(new RsaEngine());
                        string nString = responseContent.Split(',')[2].Split(':')[1].Replace("\"", "").Replace("}", "").Replace("\n", "");
                        string eString = responseContent.Split(',')[1].Split(':')[1].Replace("\"", "");
                        string maxdigitsStirng = responseContent.Split(',')[0].Split(':')[1].Replace("\"", "");
                        byte[] input = Hex.Decode(password);
                        int maxD = Convert.ToInt32(maxdigitsStirng);
                        BigInteger e = new BigInteger(eString,16);
                        BigInteger n = new BigInteger(nString, 16);
                        RsaKeyParameters rsak = new RsaKeyParameters(false, n, e);
                        byte[] cipherText = new byte[128];
                        abc.Init(true, rsak);
                        abc.DoFinal(input, cipherText, 0);
                        string base64PW = Convert.ToBase64String(cipherText);
                        password = base64PW;
                    throw new WebException(_returnCodes[Convert.ToInt32(response.StatusCode)]);
                throw new WebException("unknown response status code.");
            return password;
after that i save the new password in a string-variable and use it in a new request in which i want to login. Here's the code (also in C#, newPW is the encrypted password):
string uriS1 = String.Format(baseurl + "/login.html?j_username={0}&j_password={1}", user, newPW);
            Uri uri1 = new Uri(uriS1);
            HttpWebRequest loginRequest = (HttpWebRequest)WebRequest.CreateHttp(uri1);
            loginRequest.Method = "POST";
            loginRequest.CookieContainer = cookies;
            HttpWebResponse loginResponse = (HttpWebResponse)loginRequest.GetResponse();

And here's the problem. the response of this request gives me the following uri: "http://localhost/jasperserver/login.html?error=1". This means that the login has failed.

I'm new to the Jasperserver so my Question is:

Can someone explain to me how i login correctly with the encrypted password because i'm desperating here :) Also i don't know extactly wether the problem is the HttpWebRequest or the problem is the encryption itself and the password is wrongly encrypted. 

I hope someone can help me or got the same problem and found a solution for it.


PS: sorry for bad english

mike9494's picture
Joined: Apr 19 2016 - 11:54pm
Last seen: 6 years 7 months ago

0 Answers:

No answers yet