本文整理汇总了Java中org.apache.shiro.authc.UnknownAccountException类的典型用法代码示例。如果您正苦于以下问题:Java UnknownAccountException类的具体用法?Java UnknownAccountException怎么用?Java UnknownAccountException使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
UnknownAccountException类属于org.apache.shiro.authc包,在下文中一共展示了UnknownAccountException类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: doGetAuthenticationInfo
import org.apache.shiro.authc.UnknownAccountException; //导入依赖的package包/类
/**
* 认证回调函数,登录时调用.
*/
@Override
protected AuthenticationInfo doGetAuthenticationInfo(
AuthenticationToken authcToken) throws AuthenticationException {
UsernamePassword2Token token = (UsernamePassword2Token) authcToken;
String username = token.getUsername();
if (username == null || null == username) {
throw new AccountException(
"Null usernames are not allowed by this realm.");
}
User entity = new User();
entity.setEmail(username);
entity.setStatus(Constant.STATUS_ENABLED);
entity = (User) service.iUserService.select(entity);
if (null == entity) {
throw new UnknownAccountException("No account found for user ["
+ username + "]");
}
byte[] key = Encode.decodeHex(entity.getRandom());
return new SimpleAuthenticationInfo(new Shiro(entity.getId(),
entity.getEmail(), entity.getName()), entity.getPassword(),
ByteSource.Util.bytes(key), getName());
}
示例2: doGetAuthorizationInfo
import org.apache.shiro.authc.UnknownAccountException; //导入依赖的package包/类
/**
* 授权查询回调函数, 进行鉴权但缓存中无用户的授权信息时调用.
*/
@Override
protected AuthorizationInfo doGetAuthorizationInfo(
PrincipalCollection principalCollection) {
if (principalCollection == null) {
throw new AuthorizationException("Principal is not null!");
}
Shiro shiro = (Shiro) principalCollection.getPrimaryPrincipal();
User entity = new User();
entity.setId(shiro.getId());
entity = (User) service.iUserService.select(entity);
if (null == entity) {
throw new UnknownAccountException("No account found for user ["
+ shiro.getId() + "]");
}
SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
return info;
}
示例3: dashboard
import org.apache.shiro.authc.UnknownAccountException; //导入依赖的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";
}
示例4: doGetAuthenticationInfo
import org.apache.shiro.authc.UnknownAccountException; //导入依赖的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;
}
示例5: showLoginForm
import org.apache.shiro.authc.UnknownAccountException; //导入依赖的package包/类
@RequestMapping(value = "/login")
public String showLoginForm(HttpServletRequest req, Model model) {
if(req.getMethod().equalsIgnoreCase("get")){
return "login";
}
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;
}
if(error!=null){
model.addAttribute("shiroLoginFailure", error);
return "login";
}
return "redirect:/main";
}
示例6: tryLogin
import org.apache.shiro.authc.UnknownAccountException; //导入依赖的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;
}
示例7: login
import org.apache.shiro.authc.UnknownAccountException; //导入依赖的package包/类
@RequestMapping("/login")
public String login(HttpServletRequest request) throws Exception{
String exceptionClassName = (String) request.getAttribute("shiroLoginFailure");
//根据shiro返回的异常类路径判断,抛出指定异常信息
if(exceptionClassName!=null){
if (UnknownAccountException.class.getName().equals(exceptionClassName)) {
//最终会抛给异常处理器
throw new UnknownAccountException("账号不存在");
} else if (IncorrectCredentialsException.class.getName().equals(
exceptionClassName)) {
throw new IncorrectCredentialsException("用户名/密码错误");
}else {
throw new Exception();//最终在异常处理器生成未知错误
}
}
return "login";
}
示例8: onLoginFailure
import org.apache.shiro.authc.UnknownAccountException; //导入依赖的package包/类
/**
* 登录失败调用事件
*/
@Override
protected boolean onLoginFailure(AuthenticationToken token,
AuthenticationException e, ServletRequest request, ServletResponse response) {
String className = e.getClass().getName(), message = "";
if (IncorrectCredentialsException.class.getName().equals(className)
|| UnknownAccountException.class.getName().equals(className)){
message = "用户或密码错误, 请重试.";
}
else if (e.getMessage() != null && StringUtils.startsWith(e.getMessage(), "msg:")){
message = StringUtils.replace(e.getMessage(), "msg:", "");
}
else{
message = "系统出现点问题,请稍后再试!";
e.printStackTrace(); // 输出到控制台
}
request.setAttribute(getFailureKeyAttribute(), className);
request.setAttribute(getMessageParam(), message);
return true;
}
示例9: signin
import org.apache.shiro.authc.UnknownAccountException; //导入依赖的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";
}
示例10: changepwd
import org.apache.shiro.authc.UnknownAccountException; //导入依赖的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";
}
}
示例11: onLoginFailure
import org.apache.shiro.authc.UnknownAccountException; //导入依赖的package包/类
/**
* 登录失败调用事件
*/
@Override
protected boolean onLoginFailure(AuthenticationToken token, AuthenticationException e, ServletRequest request,
ServletResponse response) {
String className = e.getClass().getName(), message = "";
if (IncorrectCredentialsException.class.getName().equals(className)
|| UnknownAccountException.class.getName().equals(className)) {
message = "用户或密码错误, 请重试.";
} else if (e.getMessage() != null && StringUtils.startsWith(e.getMessage(), "msg:")) {
message = StringUtils.replace(e.getMessage(), "msg:", "");
} else {
message = "系统出现点问题,请稍后再试!";
e.printStackTrace(); // 输出到控制台
}
request.setAttribute(getFailureKeyAttribute(), className);
request.setAttribute(getMessageParam(), message);
return true;
}
示例12: login
import org.apache.shiro.authc.UnknownAccountException; //导入依赖的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("登录失败!");
}
示例13: doGetAuthenticationInfo
import org.apache.shiro.authc.UnknownAccountException; //导入依赖的package包/类
@Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
String phoneNumber = (String)token.getPrincipal();
if(StringUtils.trimToNull(phoneNumber) == null){
throw new IncorrectCredentialsException();//账号或密码错误
}
CdMember query = new CdMember();
query.setPhoneNumber(phoneNumber);
CdMember member = memberService.findMember(query);
if(member == null) {
throw new UnknownAccountException();//没找到帐号
}
SimpleAuthenticationInfo authenticationInfo = new SimpleAuthenticationInfo(
phoneNumber, //用户名
member.getPassword(), //密码
ByteSource.Util.bytes(AppConstants.PC_PASSWORD_SALT),//salt=phoneNumber
getName() //realm name
);
return authenticationInfo;
}
示例14: doGetAuthenticationInfo
import org.apache.shiro.authc.UnknownAccountException; //导入依赖的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;
}
示例15: login
import org.apache.shiro.authc.UnknownAccountException; //导入依赖的package包/类
@RequestMapping(value = "/member/login", method = RequestMethod.POST)
public ResponseEntity login(HttpServletRequest request, Model model){
Map<String, Object> result = new HashMap<>();
if(SecurityUtils.getSubject().isAuthenticated()){
String username = (String) SecurityUtils.getSubject().getPrincipal();
result.put("status", 200);
result.put("username", username);
return new ResponseEntity(result, HttpStatus.OK);
}
String exceptionClassName = (String) request.getAttribute(FormAuthenticationFilterExt.DEFAULT_ERROR_KEY_ATTRIBUTE_NAME);
String error = null;
RestError restError = new RestError();
restError.setTimestamp(new Date());
if(DisabledAccountException.class.getName().equals(exceptionClassName)){
restError.setMessage("该账号已被锁定,请联系客服。");
}else if(UnknownAccountException.class.getName().equals(exceptionClassName)) {
restError.setMessage("用户名不存在");
} else if(IncorrectCredentialsException.class.getName().equals(exceptionClassName)) {
restError.setMessage("用户名或密码错误");
} else if(exceptionClassName != null) {
restError.setMessage( "登录失败:" + exceptionClassName);
}
restError.setStatus(401);
return new ResponseEntity(restError, HttpStatus.UNAUTHORIZED);
}