zoukankan      html  css  js  c++  java
  • springcloud系列六 整合security

    一 Eureka注册中心认证:

      Eureka自带了一个管理界面,如果不加密,所有人都可以进行访问这个地址,这样安全问题就来了,所以需要对其进行加密认证:

    那么该如何进行整合呢:

    1 在注册中心模块添加依赖:

       <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-security</artifactId>
            </dependency>

    2 yml文件配置:

    spring:
      security:
        user:
          name: admin
          password: admin

    3 启动服务再次登录尝试:

    之前是谷歌登录,所以换了一个浏览器,需要再登录,

    再次启动注册模块,就出现一堆错误:

    那么这个问题怎么解决呢:

    eureka:
      client:
        serviceUrl:
         defaultZone: http://admin:admin@127.0.0.1:8761/eureka/  #eureka注册中心地址

    在注册服务上加上这个,名字,密码就可以了吗?

    再启动还是报一堆错误,服务根本注册不进去:

     可以看到报错信息:

    com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server

    百度查询:

    但是好像并没有解决啊:

    开启认证了,但是没有禁用CSRF

    新版本的spring-cloud2.0中: Spring Security默认开启了CSRF攻击防御

    CSRF会将微服务的注册也给过滤了,虽然不会影响注册中心,但是其他客户端是注册不了的

    解决方案:

    关闭csrf攻击:

    package com.cxy.config;
    
    import org.springframework.context.annotation.Configuration;
    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.config.annotation.web.servlet.configuration.EnableWebMvcSecurity;
    
    /***
     * @ClassName: WebSecurityConfig
     * @Description:
     * @Auther: 陈绪友
     * @Date: 2019/1/2820:34
     * @version : V1.0
     */
    @Configuration
    
    public class WebSecurityConfig {
        @EnableWebSecurity
        public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {
            @Override
            protected void configure(HttpSecurity http) throws Exception {
                http.authorizeRequests().anyRequest().authenticated().and().httpBasic().and().csrf().disable();
            }
        }
    }

  • 相关阅读:
    border-radius的8个属性值_画半圆、叶子等
    CSS的background简写方式(转)
    frameset左右栏锚点定位实例
    HTML5新增
    安装MSI报2503的错误
    当前标识(IIS APPPOOLDefaultWebSite)没有对“C:WindowsMicrosoft.NETFramework64v2.0.50727Temporary ASP.NET Files”的写访问权限 解决方案
    Windows设置相关性AFFINITY,修改使用核心数
    Yaml格式文件处理
    Vs2017离线安装包制作
    Vs2017常用快捷键
  • 原文地址:https://www.cnblogs.com/xiufengchen/p/10331687.html
Copyright © 2011-2022 走看看