本文整理汇总了Java中org.apache.shiro.authc.LockedAccountException类的典型用法代码示例。如果您正苦于以下问题:Java LockedAccountException类的具体用法?Java LockedAccountException怎么用?Java LockedAccountException使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
LockedAccountException类属于org.apache.shiro.authc包,在下文中一共展示了LockedAccountException类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: login
import org.apache.shiro.authc.LockedAccountException; //导入依赖的package包/类
/**
* 用户登录
* @param request
* @param user
* @param model
* @return
*/
@RequestMapping(value = "/login",method = RequestMethod.POST)
public String login(HttpServletRequest request, AdminUser user, Model model) {
if (StringUtils.isEmpty(user.getUsername())||StringUtils.isEmpty(user.getPassword())){
request.setAttribute("msg","用户名或者密码不能为空!");
return "login";
}
Subject subject = SecurityUtils.getSubject();
UsernamePasswordToken token=new UsernamePasswordToken(user.getUsername(),user.getPassword());
try {
subject.login(token);
return "redirect:/initPage";
}catch (LockedAccountException lae) {
token.clear();
request.setAttribute("msg", "用户已经被锁定不能登录,请与管理员联系!");
return "login";
} catch (AuthenticationException e) {
token.clear();
request.setAttribute("msg", "用户或密码不正确!");
return "login";
}
}
示例2: dashboard
import org.apache.shiro.authc.LockedAccountException; //导入依赖的package包/类
@RequestMapping(value = "/login", method = {
RequestMethod.POST})
public String dashboard(ModelMap map, Admin admin) {
String error = null;
UsernamePasswordToken token = new UsernamePasswordToken(admin.getUsername(), admin.getPassword());
token.setRememberMe(false);
try {
SecurityUtils.getSubject().login(token);
return "redirect:/video/all";
} catch (UnknownAccountException uae) {
error = "用户名错误!";
} catch (IncorrectCredentialsException ice) {
error = "密码错误!";
} catch (LockedAccountException lae) {
error = "用户被锁定!";
}
map.addAttribute("error", error);
return "login.ftl";
}
示例3: doGetAuthenticationInfo
import org.apache.shiro.authc.LockedAccountException; //导入依赖的package包/类
/**
* 用户认证-验证用户是否登录、用户名密码是否匹配
*/
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
logger.info(">>> 【用户认证】token = {}", token);
String userName = (String)token.getPrincipal();
AdminUser user = getPrincipalService().getPrincipalObject(userName);
if(user == null) {
throw new UnknownAccountException("Unknown account: " + userName);//没找到帐号
}
if(AdminUserStatusEnum.ADMIN_USER_STATUS_DISABLED.getStatusCode().equals(user.getStatus())) {
throw new LockedAccountException("Account[" + userName + "] has been locked!"); //帐号锁定
}
//交给AuthenticatingRealm使用CredentialsMatcher进行密码匹配
SimpleAuthenticationInfo authenticationInfo = new SimpleAuthenticationInfo(
user.getUserName(), //用户名
user.getPassword(), //密码
ByteSource.Util.bytes(user.getPasswordSalt()),//salt
getName() //realm name
);
return authenticationInfo;
}
示例4: tryLogin
import org.apache.shiro.authc.LockedAccountException; //导入依赖的package包/类
public boolean tryLogin(String email, String password, Boolean rememberMe) {
org.apache.shiro.subject.Subject currentUser = SecurityUtils.getSubject();
UsernamePasswordToken token = new UsernamePasswordToken(email, password);
token.setRememberMe(rememberMe);
try {
currentUser.login(token);
System.out.println("User [" + currentUser.getPrincipal().toString() + "] logged in successfully.");
// save username in the session
currentUser.getSession().setAttribute("username", email);
return true;
} catch (UnknownAccountException uae) {
System.out.println("There is no user with username of " + token.getPrincipal());
} catch (IncorrectCredentialsException ice) {
System.out.println("Password for account " + token.getPrincipal() + " was incorrect!");
} catch (LockedAccountException lae) {
System.out.println("The account for username " + token.getPrincipal() + " is locked. " + "Please contact your administrator to unlock it.");
}
return false;
}
示例5: login
import org.apache.shiro.authc.LockedAccountException; //导入依赖的package包/类
@PostMapping("/login")
public String login(HttpServletRequest request, User user, Model model){
if (StringUtils.isEmpty(user.getLoginId()) || StringUtils.isEmpty(user.getPassword())) {
request.setAttribute("msg", "用户名或密码不能为空!");
return "login";
}
Subject subject = SecurityUtils.getSubject();
UsernamePasswordToken token=new UsernamePasswordToken(user.getLoginId(),user.getPassword());
try {
subject.login(token);
return "manage";
}catch (LockedAccountException lae) {
token.clear();
request.setAttribute("msg", "用户已经被锁定不能登录,请与管理员联系!");
return "login";
} catch (AuthenticationException e) {
token.clear();
request.setAttribute("msg", "用户或密码不正确!");
return "login";
}
}
示例6: signin
import org.apache.shiro.authc.LockedAccountException; //导入依赖的package包/类
@RequestMapping(value = "/signin", method = {
RequestMethod.POST})
public String signin(ModelMap map, User user, HttpServletRequest request) {
String error;
UsernamePasswordToken token = new UsernamePasswordToken(user.getUsername(), user.getPasswd());
token.setRememberMe(null != request.getParameter("rememberme") ? true : false);
try {
Subject subject = SecurityUtils.getSubject();
subject.login(token);
subject.getSession().setAttribute("curUser", userService.findByUsername((String) subject.getPrincipal()));
return "redirect:/dashboard/console";
} catch (UnknownAccountException uae) {
error = "用户名错误!";
} catch (IncorrectCredentialsException ice) {
error = "密码错误!";
} catch (LockedAccountException lae) {
error = "用户被锁定!";
}
map.addAttribute("error", error);
return "signin";
}
示例7: changepwd
import org.apache.shiro.authc.LockedAccountException; //导入依赖的package包/类
@RequestMapping(value = "/changepwd", method = {
RequestMethod.POST})
public String changepwd(ModelMap map, User user, @RequestParam(value = "passwdnew", required = true) String passwdnew) {
//验证当前账号
UsernamePasswordToken token = new UsernamePasswordToken(user.getUsername(), user.getPasswd());
token.setRememberMe(false);
try {
SecurityUtils.getSubject().login(token);
//验证通过更新用户密码
user.setId(getCurrentUser().getId());
user.setPasswd(passwdnew);
passwordHelper.encryptPassword(user);
userService.updateById(user);
return "redirect:/dashboard/console";
} catch (UnknownAccountException | IncorrectCredentialsException | LockedAccountException e) {
map.addAttribute("exception", e.getMessage());
return "common/error";
}
}
示例8: login
import org.apache.shiro.authc.LockedAccountException; //导入依赖的package包/类
/**
* 执行登录请求
*
* @param username
* @param request
* @return
*/
private String login(String username, String accessToken, HttpServletRequest request) {
String ret = getView(Views.LOGIN);
if (StringUtils.isNotBlank(username)) {
AuthenticationToken token = createToken(username, accessToken);
try {
SecurityUtils.getSubject().login(token);
ret = Views.REDIRECT_HOME;
} catch (AuthenticationException e) {
logger.error(e);
if (e instanceof UnknownAccountException) {
throw new MtonsException("用户不存在");
} else if (e instanceof LockedAccountException) {
throw new MtonsException("用户被禁用");
} else {
throw new MtonsException("用户认证失败");
}
}
return ret;
}
throw new MtonsException("登录失败!");
}
示例9: doGetAuthenticationInfo
import org.apache.shiro.authc.LockedAccountException; //导入依赖的package包/类
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
UsernamePasswordToken upToken = (UsernamePasswordToken) token;
/* if (Strings.isBlank(upToken.getCaptcha()))
throw new AuthenticationException("验证码不能为空");
String _captcha = Strings.sBlank(SecurityUtils.getSubject().getSession(true).getAttribute(Toolkit.captcha_attr));
if (!upToken.getCaptcha().equalsIgnoreCase(_captcha))
throw new AuthenticationException("验证码错误");*/
User user = dao().fetch(User.class, Cnd.where("name", "=", upToken.getUsername()));
if (user == null)
return null;
if (user.isLocked())
throw new LockedAccountException("Account [" + upToken.getUsername() + "] is locked.");
ByteSource salt = ByteSource.Util.bytes(user.getSalt());
SimpleAuthenticationInfo info = new SimpleAuthenticationInfo(user, user.getPassword(), getName());
info.setCredentialsSalt(salt);
return info;
}
示例10: doGetAuthenticationInfo
import org.apache.shiro.authc.LockedAccountException; //导入依赖的package包/类
@Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
String username = (String)token.getPrincipal();
SysUsers user = userService.findByUsername(username);
if(user == null) {
throw new UnknownAccountException();//没找到帐号
}
if(Boolean.TRUE.equals(user.getLocked())) {
throw new LockedAccountException(); //帐号锁定
}
//交给AuthenticatingRealm使用CredentialsMatcher进行密码匹配,如果觉得人家的不好可以自定义实现
SimpleAuthenticationInfo authenticationInfo = new SimpleAuthenticationInfo(
username, //用户名
user.getPassword(), //密码
ByteSource.Util.bytes(user.getSalt()),//salt=salt
getName() //realm name
);
return authenticationInfo;
}
示例11: createRouteBuilder
import org.apache.shiro.authc.LockedAccountException; //导入依赖的package包/类
protected RouteBuilder createRouteBuilder() throws Exception {
final ShiroSecurityPolicy securityPolicy = new ShiroSecurityPolicy("./src/test/resources/securityconfig.ini", passPhrase, false);
return new RouteBuilder() {
@SuppressWarnings("unchecked")
public void configure() {
onException(UnknownAccountException.class, IncorrectCredentialsException.class,
LockedAccountException.class, AuthenticationException.class).
to("mock:authenticationException");
from("direct:secureEndpoint").
policy(securityPolicy).
to("log:incoming payload").
to("mock:success");
}
};
}
示例12: createRouteBuilder
import org.apache.shiro.authc.LockedAccountException; //导入依赖的package包/类
protected RouteBuilder createRouteBuilder() throws Exception {
final ShiroSecurityPolicy securityPolicy = new ShiroSecurityPolicy("src/test/resources/securityconfig.ini", passPhrase);
securityPolicy.setBase64(true);
return new RouteBuilder() {
@SuppressWarnings("unchecked")
public void configure() {
onException(UnknownAccountException.class, IncorrectCredentialsException.class,
LockedAccountException.class, AuthenticationException.class).
to("mock:authenticationException");
from("direct:secureEndpoint").
policy(securityPolicy).
to("log:incoming payload").
to("mock:success");
}
};
}
示例13: createRouteBuilder
import org.apache.shiro.authc.LockedAccountException; //导入依赖的package包/类
protected RouteBuilder createRouteBuilder() throws Exception {
final ShiroSecurityPolicy securityPolicy = new ShiroSecurityPolicy("src/test/resources/securityconfig.ini", passPhrase);
return new RouteBuilder() {
@SuppressWarnings("unchecked")
public void configure() {
onException(UnknownAccountException.class, IncorrectCredentialsException.class,
LockedAccountException.class, AuthenticationException.class).
to("mock:authenticationException");
from("direct:secureEndpoint").
policy(securityPolicy).
to("log:incoming payload").
to("mock:success");
}
};
}
示例14: setFailureAttribute
import org.apache.shiro.authc.LockedAccountException; //导入依赖的package包/类
protected void setFailureAttribute(ServletRequest request,
AuthenticationException ae) {
String errorMessage = null;
if (ae instanceof IncorrectCredentialsException) {
errorMessage = "密码错误,输入错误超过当日限制,将锁定账户";
// 登录失败日志记录
logLoginStatus(request, LoginType.登录失败);
} else if (ae instanceof ValidateCodeException) {
errorMessage = "验证码错误";
} else if (ae instanceof UnValidationAccountException) {
errorMessage = "账号未被验证";
} else if (ae instanceof LockedAccountException) {
errorMessage = "密码输入错误超过当日限制,请明天再试";
} else if (ae instanceof DisabledAccountException) {
errorMessage = "账号被管理员锁定";
} else if (ae instanceof UnknownAccountException) {
errorMessage = "账号不存在";
} else {
errorMessage = "未知错误";
log.fatal("登录错误-未知错误,请管理员检查", ae);
}
request.setAttribute(getFailureKeyAttribute(), errorMessage);
}
示例15: doGetAuthenticationInfo
import org.apache.shiro.authc.LockedAccountException; //导入依赖的package包/类
@Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
String username = (String) token.getPrincipal();
User user = userService.findByName(username);
if (user == null) {
throw new UnknownAccountException();// 没找到帐号
}
if (Boolean.TRUE.equals(user.getLocked())) {
throw new LockedAccountException(); // 帐号锁定
}
// 交给AuthenticatingRealm使用CredentialsMatcher进行密码匹配,如果觉得不好可以自定义实现
SimpleAuthenticationInfo authenticationInfo = new SimpleAuthenticationInfo(user, user.getPassword(), // 密码
ByteSource.Util.bytes(user.getSalt()),// salt
getName() // realm name
);
return authenticationInfo;
}