@RestController
public class TestController extends ApiController {
@RequestMapping(value = "/data", method = RequestMethod.GET)
public ModelResult<String> getData(){
return Result.build("data");
}
}
@ErrorMapping(path="/error")
@Controller
public class HomeController extends WebController {
@RequestMapping(value = "/", method = RequestMethod.GET)
public String getData(){
return "index";
}
}
生成api文档
启动类引用@EnableMySwagger注解,官方的@EnableSwagger2注解被重写
@EnableMySwagger
@SpringBootApplication
public class BootApplication {
public static void main(String[] args) {
new SpringApplicationBuilder(BootApplication.class).web(true).run(args);
}
}
@EnableRedisLock
@SpringBootApplication
public class BootApplication {
public static void main(String[] args) {
new SpringApplicationBuilder(BootApplication.class).web(true).run(args);
}
}
@EnableMybatis
@SpringBootApplication
public class BootApplication {
public static void main(String[] args) {
new SpringApplicationBuilder(BootApplication.class).web(true).run(args);
}
}
@EnableShiroSecurityServer
@SpringBootApplication
public class BootApplication {
public static void main(String[] args) {
new SpringApplicationBuilder(BootApplication.class).web(true).run(args);
}
}
@EnableShiro
@SpringBootApplication
public class BootApplication {
public static void main(String[] args) {
new SpringApplicationBuilder(BootApplication.class).web(true).run(args);
}
}
@RestController
public class LoginController extends ApiController {
private static final Logger logger = Logger.getLogger(LoginController.class);
@Autowired
private UserCloud userCloud;
@RequestMapping(value = "/login", method = RequestMethod.POST)
public ModelResult<Object> login(@RequestParam String username, @RequestParam String password) throws Exception{
//公钥传给客户端
String publicKey = Auth.getPublicKey();
//客户端调用登录接口时进行公钥加密后传参调用此接口
password = RSAUtil.encryptByPubKey(password, publicKey);
//以下正式走登录流程
User user = userCloud.getUser(username).getData();
Auth.login(username, password, user.getSalt(), user.getPassword(), "user", user);
//加入角色权限
Auth.refreshRoles(Redis.getToken(), new ArrayList<String>());
return Result.build("登录成功", ApiResult.SUCCESS, ResultCode.CODE_200);
}
@RequestMapping(value = "/logout", method = RequestMethod.POST)
public ModelResult<Object> logout(){
Auth.logOut();
return Result.build("退出成功", ApiResult.SUCCESS, ResultCode.CODE_200);
}
@ApiOperation(notes = "获取当前登录用户信息", value = "获取当前登录用户信息")
@RequestMapping(value = "/user", method = RequestMethod.GET)
public ModelResult<User> getUser(){
User user = (User) Auth.getAuthc("user");
return userCloud.getUser(user.getUserId());
}
}
daijie-social
集成第三方接口,提供QQ、微信、支付宝、新浪、百度登录。
实现了web端第三方授权跳转页登录。
使用说明
第三方登录
启动类引用@EnableSocialLogin:
@EnableSocialLogin
@SpringBootApplication
public class BootApplication {
public static void main(String[] args) {
new SpringApplicationBuilder(BootApplication.class).web(true).run(args);
}
}