spring security 显示登录的用户名与退出登录

一、显示登录成功的用户名

1.编写LoginController.java  注意这里不是从数据库取的数据 ,用的是配置文件里配置的账号,而且要登录成功才能取到。

package com.pinyougou.manager.controller;

import java.util.HashMap;
import java.util.Map;

import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/login")
public class LoginController {

    @RequestMapping("/name")
    public Map name(){
        //获取spring security 当前登录的用户名
        String name = SecurityContextHolder.getContext().getAuthentication().getName();
        Map map = new HashMap<>();
         map.put("loginName", name);
         return map;
    }
}

 

2.编写loginService.js  

app.service('loginService',function($http){
    
    this.loginName=function(){
        return $http.get('../login/name.do');
    }
});

注意,上面的app和$http来自base.js

base.js  需要在页面引入  <script src="../plugins/jQuery/jquery-2.2.3.min.js"></script>

var app=angular.module('pinyougou',[]);

 

3.indexController.js

app.controller('indexController',function($scope,loginService){
    
    //显示当前用户名
    $scope.showLoginName=function(){
        loginService.loginName().success(
                function(response){
                    $scope.loginName=response.loginName;
                }
        );
    }
});

 

4.在index.html里面

引入

    <script type="text/javascript" src="../plugins/angularjs/angular.min.js"></script>
    <script type="text/javascript" src="../js/base.js"></script>
    <script type="text/javascript" src="../js/service/loginService.js"></script>
    <script type="text/javascript" src="../js/controller/indexController.js"></script>

body标签里引入

<body class="hold-transition skin-green sidebar-mini" ng-app="pinyougou" ng-controller="indexController" ng-init="showLoginName()">

 

最后在要显示用户名的地方写  {{loginName}} 

 

二、退出登录

1.修改srping-security.xml

 

    <http use-expressions="false">
        <intercept-url pattern="/**" access="ROLE_ADMIN"/>

        <!--开启表单登录功能  <form-login/>自动生成一个登录表单-->
        <!--<form-login/>-->
        <!--自定义登录表单配置
            login-page="/login.html"  登录表单
            default-target-url="/index.html"  登录成功后跳转到的页面
            authentication-failure-url="/login_err.html" 登录失败跳转的页面
            login-processing-url="/login2" 自定义访问路径  默认为login
            username-parameter="username" username是默认的 前端<input name="username"> 也可以修改
            always-use-default-target="true" 总是跳转到配置的页面
        -->
        <form-login login-page="/login.html" default-target-url="/admin/index.html" authentication-failure-url="/login.html" always-use-default-target="true"/>
        <!--关闭csrf跨域请求校验-->
        <csrf disabled="true"/>
        <!-- 允许使用框架页  因为brand.html 里面有一个index.html框架页 -->
        <headers>
            <frame-options policy="SAMEORIGIN"/>
        </headers>
        <!-- 退出配置  会自动生成一个/logout地址提供退出
            可以修改默认的退出url <logout logout-url="/mylogout"/>
             -->
        <logout/>
    </http>

 

2.修改index.html

 <div class="pull-right">
        <a href="../logout" class="btn btn-default btn-flat">注销</a>
 </div>

 

posted on 2019-06-21 19:59  成魔的蜘蛛  阅读(361)  评论(0)    收藏  举报

导航