78分布式电商项目 -用户中心

简介: 78分布式电商项目 -用户中心

代码已上传至Github

地址:https://github.com/ylw-github/pingyougou.git

本文实现用户中心单点登录

详细步骤如下:

1)pom.xml 引入 springSecurity、cas 客户端和 springSecurity Cas 整合包依赖

2)web.xml 添加 spring-security 过滤器(参照参照 casclient_demo3)设置首页为home-index.html

<welcome-file-list> 
  <welcome-file>home-index.html</welcome-file>
</welcome-file-list>

3)构建 UserDetailsServiceImpl.java

4)添加 spring-security.xml(参照casclient_demo3),并做以下修改配置匿名访问资源

<!-- 匿名访问资源 --> <http pattern="/css/**" security="none"></http> <http pattern="/js/**" security="none"></http> 
<http pattern="/image/**" security="none"></http> 
<http pattern="/plugins/**" security="none"></http>
<http pattern="/register.html" security="none"></http>
<http pattern="/user/add.do" security="none"></http> 
<http pattern="/user/sendCode.do" security="none"></http>

设置服务地址属性

<beans:bean id="serviceProperties"class="org.springframework.security.cas.ServiceProperties"> 
<beans:property name="service" value="http://localhost:9106/login/cas"/></beans:bean>

设置认证类

<beans:bean id="userDetailsService" class="com.pinyougou.user.service.UserDetailServiceImpl"/>

5)创建 LoginController.java

@RestController
@RequestMapping("/login")
public class LoginController {
@RequestMapping("/name")
public Map showName(){
    String name = 
    SecurityContextHolder.getContext().getAuthentication().getName();
    //得到登陆人账号
    Map map=new HashMap<>();
    map.put("loginName", name);
    return map; 
    } 
}

上面是登录的代码片段,现在看看退出登录代码

设置退出登录后的跳转地址

<beans:bean id="requestSingleLogoutFilter"
class="org.springframework.security.web.authentication.logout.LogoutFilter"> 
<beans:constructor-arg value="http://localhost:9100/cas/logout?service=http://localhost:9103"/> 
........
</beans:bean>

退出登录后,跳转到网站首页

<span class="safe">
   <a href="/logout/cas">退出登录 </a>
 </span>


目录
相关文章
|
6月前
|
NoSQL 调度 Redis
19- 你的项目中哪里用到了分布式锁
在一个项目中,为解决集群环境下SpringTask定时任务的重复执行问题,采用了Redis实现分布式锁来管理任务调度,防止资源浪费。后来因任务量和执行规则增加,以及单节点效率限制,系统改用XXL-JOB,分布式锁不再使用。
68 2
|
2月前
|
NoSQL Java Redis
面试官:项目中如何实现分布式锁?
面试官:项目中如何实现分布式锁?
90 6
面试官:项目中如何实现分布式锁?
|
3月前
|
资源调度 Java 调度
项目环境测试问题之Schedulerx2.0通过分布式分片任务解决单机计算瓶颈如何解决
项目环境测试问题之Schedulerx2.0通过分布式分片任务解决单机计算瓶颈如何解决
项目环境测试问题之Schedulerx2.0通过分布式分片任务解决单机计算瓶颈如何解决
|
6月前
|
缓存 NoSQL Java
分布式项目中锁的应用(本地锁-_redis【setnx】-_redisson-_springcache)-fen-bu-shi-xiang-mu-zhong-suo-de-ying-yong--ben-de-suo--redissetnx-springcache-redisson(一)
分布式项目中锁的应用(本地锁-_redis【setnx】-_redisson-_springcache)-fen-bu-shi-xiang-mu-zhong-suo-de-ying-yong--ben-de-suo--redissetnx-springcache-redisson
91 0
|
6月前
|
SpringCloudAlibaba Java 持续交付
【构建一套Spring Cloud项目的大概步骤】&【Springcloud Alibaba微服务分布式架构学习资料】
【构建一套Spring Cloud项目的大概步骤】&【Springcloud Alibaba微服务分布式架构学习资料】
411 0
|
3月前
|
存储 缓存 开发框架
看看 Asp.net core Webapi 项目如何优雅地使用分布式缓存
看看 Asp.net core Webapi 项目如何优雅地使用分布式缓存
|
4月前
|
SQL NoSQL Java
如何在Java项目中实现分布式锁
如何在Java项目中实现分布式锁
|
4月前
|
消息中间件 Java 中间件
如何在Java项目中实现分布式事务管理
如何在Java项目中实现分布式事务管理
|
6月前
|
XML NoSQL Java
Java单体项目和分布式项目中的锁
Java单体项目和分布式项目中的锁 Java单体项目和分布式项目中的锁
85 2
|
6月前
|
缓存 NoSQL Redis
分布式项目中锁的应用(本地锁-_redis【setnx】-_redisson-_springcache)-fen-bu-shi-xiang-mu-zhong-suo-de-ying-yong--ben-de-suo--redissetnx-springcache-redisson(二)
分布式项目中锁的应用(本地锁-_redis【setnx】-_redisson-_springcache)-fen-bu-shi-xiang-mu-zhong-suo-de-ying-yong--ben-de-suo--redissetnx-springcache-redisson
60 0

热门文章

最新文章