一、登陆界面(部分)
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="login-panel panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">请登录</h3>
</div>
<div class="panel-body">
<form role="form" action="${pageContext.request.contextPath}/login" method="post">
<fieldset>
<div class="form-group">
<input class="form-control" placeholder="账户名" name="username" autofocus>
</div>
<div class="form-group">
<input class="form-control" placeholder="密码" name="password" type="password">
</div>
<div class="checkbox">
<label>
<input name="remember" type="checkbox" value="RememberMe">记住我
</label>
</div>
<input type="submit" value="登录" class="btn btn-primary form-control">
</fieldset>
</form>
</div>
</div>
</div>
</div>
</div>
二、登陆Controller
@Controller
public class LoginController {
@Resource(name = "userBizImpl")
UserBiz userBiz;
@RequestMapping("login")
public String login(HttpServletRequest req, Model model, HttpSession session) {
String exceptionClassName = (String) req.getAttribute("shiroLoginFailure");
String error = null;
//异常处理
if (UnknownAccountException.class.getName().equals(exceptionClassName)) {
error = "用户名/密码错误";
} else if (IncorrectCredentialsException.class.getName().equals(exceptionClassName)) {
error = "用户名/密码错误";
} else if (exceptionClassName != null) {
error = "其他错误:" + exceptionClassName;
}
//TODO 动态生成页面
org.apache.shiro.subject.Subject subject = SecurityUtils.getSubject();
boolean isAuthenticated = subject.isAuthenticated();
if (isAuthenticated) {
System.out.println("!");
String principal = (String) subject.getPrincipal();
session.setAttribute("username", principal);
//不同角色对应的页面
switch (principal) {
case "admin":
return "/admin/main";