- ここで私の必要性は、ログインページ以外のすべてのページへのユーザーアクセスを許可する前にログインする唯一のユーザーです
-
ログオンしていないていない場合に実装インターフェイスは、(事前)漢漢を事前そのメソッドをインターセプト内部に、書き換え削除することクラスを作成Inteceptorログオンセッション法に格納されたユーザ情報、それほど長い場合TRUE、FALSE、リターンを返しインターセプターは、放出された場合。
/* 登录拦截器 */ @Component public class LoginInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { Admin admin = (Admin) request.getSession().getAttribute(Const.ADMIN); Teacher teacher = (Teacher) request.getSession().getAttribute(Const.TEACHER); Student student = (Student) request.getSession().getAttribute(Const.STUDENT); if(!StringUtils.isEmpty(admin) || !StringUtils.isEmpty(teacher) ||!StringUtils.isEmpty(student)){ //已登录状态返回true return true; } response.sendRedirect(request.getContextPath()+"/system/login"); return false; }
-
その後、我々はインターセプタを作成しますが、上の使用していなかったものの、その後、我々はWebMvcConfigurerを実装するクラスを記述する必要があり、ここでは必要の@Configurationクラスのノートを強調しています。
@Configuration public class MyWebMvcConfigurer implements WebMvcConfigurer { /* 我只重写了这一个方法就实现了我想要的功能,如果后续有需求,会补充后两个的讲解 这个方法是添加拦截器,先给一个拦截器对象,然后那个固定,再那个是不需要拦截的页面。 */ @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/**") .excludePathPatterns("/system/login"); } /*@Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/"); } @Override public void addViewControllers(ViewControllerRegistry registry) { registry.addViewController("/").setViewName("/login"); }*/ }