【发布时间】:2010-12-09 08:22:12
【问题描述】:
我的页面以前都是以 Wicket 作为前端的 Java。现在,我有一个带有登录表单的 wordpress 起始页。当我在该登录表单中输入电子邮件和密码时,我想将其重定向到登录服务,然后如果登录成功,该服务会将用户重定向到检票口欢迎页面。
我尝试这样做的方法是从 wordpress 页面发送 POST 消息,并在我的 java 应用程序中使用 Service 处理它。这对我来说效果不佳。
这甚至是一个好方法吗?如果不是,还有其他可能的方法吗?
这是我今天尝试的实现:
(从顶部的wordpress页面模拟post-action)
<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;
}
}
应用上下文:
<!-- 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
我用 @Path("/Login") 注释 LoginServiceImpl 可能不是正确的方法? 如何将 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>
【问题讨论】:
-
为什么要使用 wordpress 起始页? Wicket 应该足以支持您的欢迎屏幕。
-
这是一个我无法控制的业务需求......我同意这是愚蠢的。
标签: java wordpress post jakarta-ee wicket