I was wondering if I wrote the Jersey client side code in the correct way.
The log-in page is supposed to redirect to main page after correct username and password input, with server side returning an empty string (""
). If either is incorrect, server side code returns "Username or Password are incorrect"
.
The page functionality worked well but when I was testing using my client side code using a correct pair of username and password, it returns "Username or Password are incorrect"
, with response returning 200OK. Below is my client side code.
public static void main(String[] args){
ClientConfig config = new ClientConfig();
Client client = ClientBuilder.newClient(config);
WebTarget target = client.target("http://localhost:8080
/qa-automation-console").path("authenticate");
Form form = new Form();
form.param("username", "username");
form.param("password", "password");
Response response = target.request().post(Entity.form(form));
//The response was 200OK.
System.out.println(response.readEntity(String.class));
}
I suspect the username and password were not submitted in correct input positions required in HTML file. Below is the block of my HTML file.
<form name="j_security_form" method="post" action="j_security_check">
<td colspan="3" class="body"><strong>Please contact the service desk for additional
information.</strong></td>
<td colspan="3" align="left"><p class="errorTitle"></p></td>
<span>
<td colspan="3" align="left"><p class="subTitle1">Please log in:</p></td>
<input class="input-small input-block" ng-model="username" placeholder="Username"
id="top_login" name="login" value="" autocomplete="on" type="text"></input>
<td colspan="3" align="left"><p class="space"></p></td>
<input class="input-small input-block" ng-model="password" placeholder="Password"
id="top_password" name="password" value="" autocomplete="on" type="password"></input>
</span>
<li style="display: none;" id="message" class="login-fail hidden">Wrong username
or password</li>
</form>