使用Spring Security框架主界面显示登陆人

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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值