1.新建LoginController.java类
package com.youlexuan.sellergoods.controller;
import java.util.HashMap;
import java.util.Map;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.UserDetails;
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(){
String name=SecurityContextHolder.getContext()
.getAuthentication().getName();
Map map=new HashMap();
map.put("loginName", name);
return map ;
}
}
前端代码(使用的angularjs分层写的)
(1)新建loginService.js
//登陆服务层
app.service('loginService',function($http){
//读取登录人名称
this.loginName=function(){
return $http.get('../login/name.do');
}
});
(2)新建indexController.js
app.controller('indexController' ,function($scope,$controller ,loginService){
//读取当前登录人
$scope.showLoginName=function(){
loginService.loginName().success(
function(response){
$scope.loginName=response.loginName;
}
);
}
});
index.html页面上引入JS
<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 class="hold-transition skin-green sidebar-mini" ng-app="youlexuan" ng-controller="indexController" ng-init="showLoginName ()">
最后一步
将index.html页面上的测试用户 替换成 {{loginName}}
退出登录
spring-security.xml的http节点中添加配置
<http use-expressions="false">
<intercept-url pattern="/**" access="ROLE_USER" />
<!--login-page拦截所有请求到这个页面 default-target-url成功之后跳转的页面 authentication-failure-url失败之后跳转的页面 -->
<form-login login-page="/login.html" default-target-url="/admin/index.html" authentication-failure-url="/login.html" always-use-default-target="true"/>
<csrf disabled="true"/>
<headers>
<frame-options policy="SAMEORIGIN"/>
</headers>
***<logout/>***
</http>
加此配置后,会自动的产生退出登录的地址/logout,如果你不想用这个地址 ,你也可以定义生成的退出地址以及跳转的页面,配置如下
**<logout logout-url="" logout-success-url=""/>**
在index.html页面上
<a href="../logout" class="btn btn-default btn-flat">注销</a>