首页 / MONGODB / Spring data mongodb @CreatedBy@LastModifiedBy@CreatedBy@LastModifiedBy SpringSecurityAuditorAware,只记录用户名
Spring data mongodb @CreatedBy@LastModifiedBy@CreatedBy@LastModifiedBy SpringSecurityAuditorAware,只记录用户名
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Spring data mongodb @CreatedBy@LastModifiedBy@CreatedBy@LastModifiedBy SpringSecurityAuditorAware,只记录用户名,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4221字,纯文字阅读大概需要7分钟。
内容图文
![Spring data mongodb @CreatedBy@LastModifiedBy@CreatedBy@LastModifiedBy SpringSecurityAuditorAware,只记录用户名](/upload/InfoBanner/zyjiaocheng/493/62401811f6494c859889855ee0116184.jpg)
添加配置文件 XML
<mongo:auditing mapping-context-ref="customMappingContext" auditor-aware-ref="yourAuditorAwareImpl"/>
SpringBoot 配置方式
@Configuration @EnableMongoAuditing class Config { @Bean public AuditorAware<AuditableUser> myAuditorProvider() { return new AuditorAwareImpl(); } }
使用注解
@CreatedDate private LocalDateTime createDate; @CreatedBy private User createdBy; @LastModifiedBy private User lastModifiedBy; @LastModifiedDate private LocalDateTime lastModifiedDate;
所以,需要在你的用户实体,添加一个方法
public User getUser() { return new User(this.getUsername(), this.getPassword(), this.isEnabled(), this.isAccountNonExpired(), this.isCredentialsNonExpired(), this.isAccountNonLocked(), this.getAuthorities()); }
当Springdata insert或者save的时候会生成数据,而且你会发现,很坑爹
"createDate" : ISODate("2017-10-25T07:06:09.730Z"), "createdBy" : { "password" : "$2a$10$LceZ8.WHHrsDRBi6NNitJe4oih/xnhJKUsbfkzLnmYuhTKY683qxm", "username" : "athos7817", "authorities" : [ { "role" : "AUTH_ORDER_UPDATE", "_class" : "org.springframework.security.core.authority.SimpleGrantedAuthority" }, { "role" : "AUTH_ORDER_ADD", "_class" : "org.springframework.security.core.authority.SimpleGrantedAuthority" }, //以下省略一万个权限 ], "accountNonExpired" : true, "accountNonLocked" : true, "credentialsNonExpired" : true, "enabled" : true }, "lastModifiedBy" : { "password" : "$2a$10$LceZ8.WHHrsDRBi6NNitJe4oih/xnhJKUsbfkzLnmYuhTKY683qxm", "username" : "athos7817", "authorities" : [ { "role" : "AUTH_ORDER_UPDATE", "_class" : "org.springframework.security.core.authority.SimpleGrantedAuthority" }, { "role" : "AUTH_ORDER_ADD", "_class" : "org.springframework.security.core.authority.SimpleGrantedAuthority" }, //以下省略一万个权限 ], "accountNonExpired" : true, "accountNonLocked" : true, "credentialsNonExpired" : true, "enabled" : true },
谁需要那么多废数据,而且SpringSecurity User的构造方法,不允许传入null
public User(String username, String password, Collection<? extends GrantedAuthority> authorities) { this(username, password, true, true, true, true, authorities); } public User(String username, String password, boolean enabled, boolean accountNonExpired, boolean credentialsNonExpired, boolean accountNonLocked, Collection<? extends GrantedAuthority> authorities) { if (username != null && !"".equals(username) && password != null) { this.username = username; this.password = password; this.enabled = enabled; this.accountNonExpired = accountNonExpired; this.credentialsNonExpired = credentialsNonExpired; this.accountNonLocked = accountNonLocked; this.authorities = Collections.unmodifiableSet(sortAuthorities(authorities)); } else { throw new IllegalArgumentException("Cannot pass null or empty values to constructor"); } }
做出修改 User 修改为 String
@CreatedDate
private LocalDateTime createDate;
@CreatedBy
private String createdBy;
@LastModifiedBy
private String lastModifiedBy;
@LastModifiedDate
private LocalDateTime lastModifiedDate;
@Bean public AuditorAware<String> auditorProvider() { return new SpringSecurityAuditorAware(); }
/** * Created by laizhenwei on 2017/10/25 */ public class SpringSecurityAuditorAware implements AuditorAware<String> { public String getCurrentAuditor() { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); if (authentication == null || !authentication.isAuthenticated()) { return null; } return ((MyUser) authentication.getPrincipal()).getUsername(); } }
结果
"createDate" : ISODate("2017-10-25T07:35:46.636Z"), "createdBy" : "laizhenwei", "lastModifiedBy" : "laizhenwei", "lastModifiedDate" : ISODate("2017-10-25T07:35:46.636Z")
Spring data mongodb @CreatedBy@LastModifiedBy@CreatedBy@LastModifiedBy SpringSecurityAuditorAware,只记录用户名
标签:配置文件 als mapping hold code style turn tab cti
本文系统来源:http://www.cnblogs.com/sweetchildomine/p/7729319.html
内容总结
以上是互联网集市为您收集整理的Spring data mongodb @CreatedBy@LastModifiedBy@CreatedBy@LastModifiedBy SpringSecurityAuditorAware,只记录用户名全部内容,希望文章能够帮你解决Spring data mongodb @CreatedBy@LastModifiedBy@CreatedBy@LastModifiedBy SpringSecurityAuditorAware,只记录用户名所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。