Раньше моя страница была полностью java с Wicket в качестве внешнего интерфейса. Теперь у меня есть стартовая страница WordPress с формой входа. Когда я вписываю адрес электронной почты и пароль в эту форму входа в систему, я хочу перенаправить ее в службу входа в систему, которая затем перенаправляет пользователя на страницу приветствия калитки, если вход выполнен успешно.
Я пытался это сделать, отправив сообщение POST со страницы WordPress и обработав его с помощью службы в моем Java-приложении. Это не очень хорошо для меня.
Это даже хороший способ сделать это? Если нет, какие еще способы возможны?
Это реализация, которую я попытался сегодня:
(имитация пост-действия со страницы WordPress сверху)
<FORM action="http://localhost:8080/Login" method="post">
<P>
<LABEL for="email">Email: </LABEL>
<INPUT type="text" id="email"><BR>
<LABEL for="password">Password: </LABEL>
<INPUT type="text" id="password"><BR>
<INPUT type="submit" value="Send"> <INPUT type="reset">
</P>
</FORM>
Услуги:
@Path("/Login")
@Consumes("application/xml")
public class LoginServiceImpl implements LoginService{
private static final Response USER_AUTHORIZATION_FAILED = Response.status(
Status.NOT_ACCEPTABLE).build();
private static final Response USER_SUCCESSFULLY_AUTHORIZED = Response.status(
Status.ACCEPTED).build();
@Autowired
private UserController userController;
@Override
@POST
public Response login(@QueryParam("email") String email,
@QueryParam("password") String password) {
boolean authenticated = userController.authenticate(email,
password);
User u = userController.findByEmail(email);
if (u != null && u.getUserType() == UserType.COMPANY_RECRUITER) {
handleCompanyRecruiter(u);
return USER_SUCCESSFULLY_AUTHORIZED;
}
else if ((authenticated && u != null) && (u.getCompany().getIsActive())) {
signInUser(u);
setCorrectResponsePage(u);
return USER_SUCCESSFULLY_AUTHORIZED;
}
else{
return USER_AUTHORIZATION_FAILED;
}
}
ApplicationContext:
<!-- LOGIN SERVICE -->
<jaxrs:server id="loginService" address="/login">
<jaxrs:serviceBeans>
<ref bean="loginServiceBean" />
</jaxrs:serviceBeans>
<jaxrs:providers>
<ref bean="jaxbProvider" />
<ref bean="notFoundExceptionMapper" />
</jaxrs:providers>
</jaxrs:server>
<bean class="services.CandidateServiceImpl"
id="candidateServiceBean" />
При запуске, когда я вхожу в форму и нажимаю отправить, я получаю эту ошибку:
HTTP ERROR: 404
NOT_FOUND
RequestURI=/Login
Меня, аннотирующего LoginServiceImpl с помощью @Path ("/ Login"), возможно, не так? Как перенаправить POST в правильное местоположение?
А это старая Wicket-страница для входа в систему:
<wicket:panel>
<wicket:extend>
<div id="top_login">
<form wicket:id="loginForm">
<div>
<label for="loginEmail" wicket:id="loginEmailLabel">Email</label>
<input class="text" id="loginEmail" wicket:id="loginEmail" tabindex="101" />
</div>
<div>
<label for="loginPassword" wicket:id="loginPasswordLabel">Password</label>
<input class="text" type="password" id="loginPassword" wicket:id="loginPassword" tabindex="102" />
</div>
<div class="loginBtnArea">
<input wicket:id="loginButton" class="submit" type="submit" tabindex="103" value="Login" />
</div>
</form>
<a wicket:id="forgotPasswordLink"><span class="forgotPassword" wicket:id="forgotPasswordLabel">Forgot your password?</span></a>
</div>
</wicket:extend>
</wicket:panel>