java使用shiro框架实现登录接口代码
时间: 2024-05-08 16:17:23 浏览: 109
Shiro框架是一个强大的安全框架,可以实现身份认证、授权和加密等功能。以下是一个使用Shiro框架实现登录接口的示例代码:
```
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.subject.Subject;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class LoginController {
@PostMapping("/login")
public String login(@RequestBody User user) {
String username = user.getUsername();
String password = user.getPassword();
Subject subject = SecurityUtils.getSubject();
UsernamePasswordToken token = new UsernamePasswordToken(username, password);
try {
subject.login(token);
return "登录成功";
} catch (AuthenticationException e) {
return "用户名或密码错误";
}
}
}
```
在上述代码中,我们使用了Shiro框架的Subject对象,该对象表示当前用户的安全操作。我们首先获取Subject对象,然后使用用户名和密码创建一个UsernamePasswordToken对象,将其传递给Subject对象的login方法进行身份认证。
如果身份认证成功,login方法不会抛出任何异常,我们可以在返回值中返回登录成功的信息。如果身份认证失败,login方法会抛出AuthenticationException异常,我们可以在catch块中处理该异常,返回用户名或密码错误的信息。
需要注意的是,我们在上述代码中使用了@RestController注解,该注解表示该类中的所有方法都会返回JSON格式的数据。我们还使用了@PostMapping注解,该注解表示该方法只接受POST请求。在实际开发中,我们可以根据需要修改这些注解的参数。
阅读全文