当前位置: 首页 > news >正文

网站菜单实现原理重庆新媒体运营公司有哪些

网站菜单实现原理,重庆新媒体运营公司有哪些,苏州网站模板建站,茶叶网站规划spring nosql在前面的文章中#xff0c;我们从一个SQL数据库提供用户和权威检索自定义查询设置弹簧安全配置。 如今#xff0c;许多现代应用程序都使用NoSQL数据库。 Spring安全性不是NoSQL数据库的现成解决方案。 在这种情况下#xff0c;我们需要通过实现自定义UserDeta… spring nosql 在前面的文章中我们从一个SQL数据库提供用户和权威检索自定义查询设置弹簧安全配置。 如今许多现代应用程序都使用NoSQL数据库。 Spring安全性不是NoSQL数据库的现成解决方案。 在这种情况下我们需要通过实现自定义UserDetailsS​​ervice提供解决方案。 在此示例中我们将使用MongoDB数据库。 我将使用docker映像但是通过从官方网站下载来建立mongodb数据库是一样容易的。 这些是开始使用docker和mongodb的一些命令如果不使用docker请忽略它们 #pull the mongo image docker pull mongo #create a mongo container docker run --name some-mongo -d mongo #get the docker container id docker ps #get the containers ip docker inspect --format {{ .NetworkSettings.IPAddress }} $CID #connection using the ip retrieved mongo $mongodb_container_ip 然后我们将编写一个简单的初始化脚本称为createuser.js。 该脚本将创建一个包含用户信息的文档例如用户名密码和授权。 use springsecurity db.users.insert({name:John,surname:doe,email:johndoe.com,password:cleartextpass,authorities:[user,admin]}) 我们将使用mongo cli执行它。 mongo 172.17.0.2:27017 createuser.js 为了在mongodb中使用spring security我们需要从users集合中检索用户信息。 第一步是将mongodb依赖项添加到我们的gradle文件中包括mongodb驱动程序。 请注意我们将使用名为“ customuserdetails”的配置文件。 group com.gkatzioura version 1.0-SNAPSHOTbuildscript {repositories {mavenCentral()}dependencies {classpath(org.springframework.boot:spring-boot-gradle-plugin:1.4.0.RELEASE)} }apply plugin: java apply plugin: idea apply plugin: spring-bootsourceCompatibility 1.8repositories {mavenCentral() }dependencies {compile(org.springframework.boot:spring-boot-starter-web)compile(org.thymeleaf:thymeleaf-spring4)compile(org.springframework.boot:spring-boot-starter-security)compile(org.mongodb:mongo-java-driver:1.3)compile(org.slf4j:slf4j-api:1.6.6)compile(ch.qos.logback:logback-core:1.1.7)compile(ch.qos.logback:logback-classic:1.1.7)testCompile junit:junit:4.11 }bootRun {systemProperty spring.profiles.active, customuserdetails } 然后我们将创建一个mongodb连接bean。 package com.gkatzioura.spring.security.config;import com.mongodb.Mongo; import com.mongodb.MongoClient; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile;/*** Created by gkatzioura on 9/27/16.*/ Configuration Profile(customuserdetails) public class MongoConfiguration {Beanpublic MongoClient createConnection() {//You should put your mongo ip herereturn new MongoClient(172.17.0.2:27017);} } 然后我们将创建一个自定义用户详细信息对象。 package com.gkatzioura.spring.security.model;import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.authority.AuthorityUtils; import org.springframework.security.core.userdetails.UserDetails;import java.util.Collection; import java.util.List;/*** Created by gkatzioura on 9/27/16.*/ public class MongoUserDetails implements UserDetails{private String username;private String password;private ListGrantedAuthority grantedAuthorities;public MongoUserDetails(String username,String password,String[] authorities) {this.username username;this.password password;this.grantedAuthorities AuthorityUtils.createAuthorityList(authorities);}Overridepublic Collection? extends GrantedAuthority getAuthorities() {return grantedAuthorities;}Overridepublic String getPassword() {return password;}Overridepublic String getUsername() {return username;}Overridepublic boolean isAccountNonExpired() {return true;}Overridepublic boolean isAccountNonLocked() {return true;}Overridepublic boolean isCredentialsNonExpired() {return true;}Overridepublic boolean isEnabled() {return true;} } 下一步我们将添加一个自定义UserDetailsS​​ervice以通过mongodb数据库检索用户详细信息。 package com.gkatzioura.spring.security.service;import com.gkatzioura.spring.security.model.MongoUserDetails; import com.mongodb.MongoClient; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import com.mongodb.client.model.Filters; import org.bson.Document; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.stereotype.Service;import java.util.List;/*** Created by gkatzioura on 9/27/16.*/ public class CustomerUserDetailsService implements UserDetailsService {Autowiredprivate MongoClient mongoClient;Overridepublic UserDetails loadUserByUsername(String email) throws UsernameNotFoundException {MongoDatabase database mongoClient.getDatabase(springsecurity);MongoCollectionDocument collection database.getCollection(users);Document document collection.find(Filters.eq(email,email)).first();if(document!null) {String name document.getString(name);String surname document.getString(surname);String password document.getString(password);ListString authorities (ListString) document.get(authorities);MongoUserDetails mongoUserDetails new MongoUserDetails(email,password,authorities.toArray(new String[authorities.size()]));return mongoUserDetails;}return null;}} 最后一步是使用我们先前实现的自定义UserDetailsS​​ervice提供spring安全配置。 package com.gkatzioura.spring.security.config;import com.gkatzioura.spring.security.service.CustomerUserDetailsService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Profile; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; import org.springframework.security.core.userdetails.UserDetailsService;/*** Created by gkatzioura on 9/27/16.*/ EnableWebSecurity Profile(customuserdetails) public class CustomUserDetailsSecurityConfig extends WebSecurityConfigurerAdapter {Beanpublic UserDetailsService mongoUserDetails() {return new CustomerUserDetailsService();}Overrideprotected void configure(AuthenticationManagerBuilder auth) throws Exception {UserDetailsService userDetailsService mongoUserDetails();auth.userDetailsService(userDetailsService);}Overrideprotected void configure(HttpSecurity http) throws Exception {http.authorizeRequests().antMatchers(/public).permitAll().anyRequest().authenticated().and().formLogin().permitAll().and().logout().permitAll();}} 运行应用程序问题 gradle bootRun 您可以在github上找到源代码 翻译自: https://www.javacodegeeks.com/2016/09/spring-boot-spring-security-nosql.htmlspring nosql
http://www.huolong8.cn/news/87773/

相关文章:

  • 企业网站推广哪家好学设计的网站推荐
  • 提高网站性能做一个小程序收费价目表
  • 开个网站需要什么条件互联网行业的开发网站
  • 简单的网站构建的基本流程wordpress 伪静态配置
  • 微信公众平台微网站开发什么是电商设计
  • 张家港高端网站建设图片类网站怎样做高并发
  • 那个网站做二手买卖的三端网站如何做
  • 网站备案 阿里云滨海哪家专业做网站
  • 主机销售网站源码个人注册公司需要什么
  • 一起做玩具网站课程网站设计建设
  • 科技感的网站中国最好网站建设公司
  • 网站页脚版权信息网络营销工具中最基本最重要的是
  • 焦作电子商务网站建设案例动漫网站 设计
  • 网站系统建设技术服务费电商网页设计期末作业模板
  • 有一个可以做任务的网站wordpress直接发送密码
  • 中国开头的网站怎么做wordpress增加中英文切换
  • 兰州网站建设咨询薇腐女喜欢做的网站
  • 红色大气企业网站进度跟踪网站开发
  • 创建国际网站wordpress读取父分类列表
  • 做网站先做首页采购平台官网
  • 网站报价单wordpress评论函数
  • wordpress分享跳转插件南宁排名seo公司
  • 好一点网站建设公司河南建筑市场一体化平台
  • 北京西站电话安丘网站制作
  • 网站服务器安装教程视频重庆模板网站建站
  • 学校网站在建设方面的的优势域名权重查询
  • 编写html的软件seo外链增加
  • wordpress直接上传视频网站网站空间数据库上传
  • 网页游戏网站开发前端做网站需要学什么软件
  • 湖北联诺建设网站注册个公司需要什么条件