У меня есть веб-приложение, написанное на Struts2. И у него нет страницы входа. Страница входа - это раздел главной страницы.
Я хочу использовать Широ для безопасности моего приложения.
Я не понимаю, как использовать Shiro без страницы входа.
И я не понимаю, как передать имя пользователя Широ из Struts Action.
Пожалуйста, помогите мне.
Спасибо.
Мое действие:
public class InternalLoginAction extends ActionSupport {
private String remoteUser;
public String execute() throws NamingException, SQLException {
HttpServletRequest request = ServletActionContext.getRequest();
remoteUser = request.getRemoteUser();
if (remoteUser != null) {
User user = new User();
user.setId(user.calcIdTemp(remoteUser));
user.setName(remoteUser);
user.setCompanyId(LoginDao.getUserCompanyId(remoteUser.toUpperCase()));
user.setExternal(false);
user.saveSession();
//I want to pass username to Shiro here.
}
return SUCCESS;
}
public String getRemoteUser() {
return remoteUser;
}
public void setRemoteUser(String remoteUser) {
this.remoteUser = remoteUser;
}
}
Извините, но я не могу показать всю страницу. Только это:
<div id="login-dialog" title="Authorization" class="hide">
<form id="login-dialog-form" >
<table>
<tr>
<td>Login:</td>
<td>
<input id="login-dialog-login" name="form.login" size="22" maxlength="22" class="text ui-widget-content ui-corner-all" data-parsley-required="true" autofocus>
</td>
</tr>
<tr>
<td>Password:</td>
<td>
<input id="login-dialog-pass" name="form.pw" type="password" size="22" maxlength="22" class="text ui-widget-content ui-corner-all" data-parsley-required="true" data-parsley-minlength="6" data-parsley-maxlength="20">
</td>
</tr>
</table>
<br><a href="#" onclick="wsp.internalLogin()">I am employee of XXX</a>
</form>
</div>
Моя функция:
internalLogin: function() {
$.ajax({
url: '/xxx/public/internalLogin.do',
type: 'POST',
success: function(data) {
location.reload(true);
},
error: function(request, textStatus, errorThrown) {
wsp.alertMessage(request.responseText);
}
});