当前位置: 移动技术网 > IT编程>开发语言>Java > SpringBoot 之 实现登录功能及登录拦截器

SpringBoot 之 实现登录功能及登录拦截器

2020年05月05日  | 移动技术网IT编程  | 我要评论

增加登录退出控制器:

# src/main/java/com/wu/controller/logincontroller.java

@controller
public class logincontroller {
    @requestmapping("/user/login")
    public string login(
        @requestparam("username") string username,
        @requestparam("password") string password,
        model model,
        httpsession session) {
        if (!stringutils.isempty(username) && "123456".equals(password)) {
            session.setattribute("loginuser", username);
            return "redirect:/main.html";
        } else {
            model.addattribute("msg", "用户名或密码错误!");
            return "index";
        }
    }

    @requestmapping("/user/logout")
    public string logout(httpsession session) {
        session.invalidate();
        return "redirect:/";
    }
}

增加登录拦截器:

# src/main/java/com/wu/interceptor/loginhandlerinterceptor .java

public class loginhandlerinterceptor implements handlerinterceptor {
    @override
    public boolean prehandle(httpservletrequest request, httpservletresponse response, object handler) throws exception {
        object user = request.getsession().getattribute("loginuser");
        if (user == null) {
            request.setattribute("msg", "无权限请先登录");
            request.getrequestdispatcher("/").forward(request, response);
            return false;
        } else {
            return true;
        }
    }

    @override
    public void posthandle(httpservletrequest request, httpservletresponse response, object handler, modelandview modelandview) throws exception {

    }

    @override
    public void aftercompletion(httpservletrequest request, httpservletresponse response, object handler, exception ex) throws exception {

    }
}

将登录拦截器配置到容器中:

# src/main/java/com/wu/config/mymvcconfig.java

@configuration
public class mymvcconfig implements webmvcconfigurer {
    // 将登录拦截器配置到容器中
    @override
    public void addinterceptors(interceptorregistry registry) {
        registry.addinterceptor(new loginhandlerinterceptor())
                .addpathpatterns("/**")
                .excludepathpatterns("/", "/", "/user/login", "/css/**", "/js/**", "/img/**");
    }

    // 配置视图跳转
    @override
    public void addviewcontrollers(viewcontrollerregistry registry) {
        registry.addviewcontroller("/").setviewname("index");
        registry.addviewcontroller("/").setviewname("index");
        registry.addviewcontroller("/main.html").setviewname("dashboard");
    }

    // 将本地化解析器配置到容器中
    @bean
    public localeresolver localeresolver() {
        return new mylocaleresolver();
    }

    // 将视图解析器配置到容器中
    @bean
    public viewresolver myviewresolver() {
        return new myviewresolver();
    }
    
    // 自定义一个视图解析器
    public static class myviewresolver implements viewresolver {
        @override
        public view resolveviewname(string viewname, locale locale) throws exception {
            return null;
        }
    }
}

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网