栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Springboot未登录请求拦截器实现

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Springboot未登录请求拦截器实现

一 相关配置
1 登录拦截器

package com.ckf.springbootinterceptor.config;

import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.util.ArrayList;
import java.util.List;


public class LoginInterceptor implements HandlerInterceptor {


private List urls = new ArrayList<>();


@Override
public boolean preHandle( HttpServletRequest request, HttpServletResponse response, Object handler ) throws Exception {
HttpSession session = request.getSession();
if (session.getAttribute(“username”) != null) {
// 已登录,放行。。
return true;
} else {
System.out.println(“你还没登录,没有权限”);
// 未登录,拦截 返回login
response.sendRedirect("/login");
return false;
}
}


public List getUrls() {
urls.add("/login"); // login url请求
urls.add("/doLogin"); // 登录请求
urls.add("/no_login");
urls.add("/swagger-ui.html");

// 静态资源
urls.add("/img/");
urls.add("/js/
");
urls.add("/css
@Bean
public Docket createDocketApi() {
return new Docket(documentationType.SWAGGER_2).pathMapping("/").select().apis(RequestHandlerSelectors.basePackage(“com.ckf”))
.paths(PathSelectors.any())
.build().apiInfo(new ApiInfoBuilder()
.title(“拦截系统项目 API 文档”)
.description(“演示SpringBoot整合Swagger…”)
.version(“2.2.3”)
.contact(new Contact(“cakin”, “https://blog.csdn.net/chengqiuming”, “798103175@qq.com”))
.license(“The Apache License”)
.licenseUrl(“https://blog.csdn.net/chengqiuming”)
.build());
}
}
3 MVC配置

package com.ckf.springbootinterceptor.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;


@Override
public void addInterceptors( InterceptorRegistry registry ) {
// 实例化登录拦截器,用于注册
LoginInterceptor loginInterceptor = new LoginInterceptor();


registry.addInterceptor(loginInterceptor).addPathPatterns("/")
.excludePathPatterns("/swagger-resources/")
.excludePathPatterns(loginInterceptor.getUrls());
WebMvcConfigurer.super.addInterceptors(registry);
}
}
二 控制器
package com.ckf.springbootinterceptor.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;

import javax.servlet.http.HttpSession;


@PostMapping("/doLogin")
public String login( String userName, String password, HttpSession session ) {
if (userName.equals(“admin”) && password.equals(“123456”)) {
session.setAttribute(“username”, userName);
//登录成功返回index 否则返回登录
return “index”;
}
return “login”;
}


@GetMapping("/login")
public String loginView() {
return “login”;
}


@GetMapping("/no_login")
public String noLogin() {
return “no_login”;
}


@GetMapping("/orders")
public String orders() {
return “orders”;
}


@GetMapping("/user")
public String user() {
return “user”;
}
}
三 视图
1 index.html Title 测试1 2 login.html 登录 用户名: 密码: 3 no_login.html Title 用户还没登录,没有权限访问!!

返回登录

4 orders.html 订单页面 欢迎来到订单系统 5 user.html Title 欢迎来到用户管理
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/317884.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号