专栏首页麒思妙想基于REST的数据处理流程_开发环境踩坑

基于REST的数据处理流程_开发环境踩坑

昨天捋了捋思路,今天着手开始准备构建基础工程,spring boot是我一直比较偏爱的,现在在国内开发领域也越发的火了起来。另外准备试试kotlin,之前看了一个教程,感觉kotlin的语法特性挺有意思,可以让代码量下降很多。

版本使用:

kotlin_version = '1.2.10'
springBootVersion = '1.5.9.RELEASE'

今天只记录坑:

坑1:日志颜色,之前版本是不用的,现在需要加入,才能让banner.txt上色。

#日志颜色
output:
  ansi:
    enabled: always

坑2:vagrant做数据库环境,却怎么也连不上redis

vagrant 配置了端口转发:

#redis

config.vm.network "forwarded_port", guest: 6379, host: 6379

但是开始怎么也连不上

先关了防火墙: sudo ufw disable 不管用。

注释redis.conf下面的语句

bind 127.0.0.1

然后发现搞定了.

坑3:

使用了H2 做测试数据库,但是加入权限以后h2的console就怎么也登不上去了,开始是

Whitelabel Error Page

This application has no explicit mapping for /error, so you are seeing this as a fallback.

Sun Jan 28 20:21:43 CST 2018

There was an unexpected error (type=Forbidden, status=403).

Invalid CSRF Token 'null' was found on the request parameter '_csrf' or header 'X-CSRF-TOKEN'.

这个问题 可以通过来解决,

http.csrf().disable()

然而,事情并没有结束,H2的console界面出来了,但是连接以后,一片空白,F12打开控制台,可以看到 in a frame because it set 'X-Frame-Options' to 'deny'.

又是一番搜索

http.headers().frameOptions().disable();

搞定。

整个测试代码如下:

@Configuration
@EnableWebSecurity
open class SecurityConfig : WebSecurityConfigurerAdapter() {

    /**定义认证用户信息获取来源,密码校验规则等 */
    @Throws(Exception::class)
    override fun configure(auth: AuthenticationManagerBuilder?) {
        //inMemoryAuthentication 从内存中获取
        auth!!.inMemoryAuthentication().withUser("dafei1288").password("dafei1288").roles("USER")

        //jdbcAuthentication从数据库中获取,但是默认是以security提供的表结构
        //usersByUsernameQuery 指定查询用户SQL
        //authoritiesByUsernameQuery 指定查询权限SQL
        //auth.jdbcAuthentication().dataSource(dataSource).usersByUsernameQuery(query).authoritiesByUsernameQuery(query);

        //注入userDetailsService,需要实现userDetailsService接口
        //auth.userDetailsService(userDetailsService);
    }

    /**定义安全策略 */
    @Throws(Exception::class)
    override fun configure(http: HttpSecurity) {
        http.csrf().disable()
        http.headers().frameOptions().disable();
        http.authorizeRequests()//配置安全策略
                .antMatchers("/**","/h2-console/**").permitAll()//定义/请求不需要验证
                .anyRequest().authenticated()//其余的所有请求都需要验证
                .and()
                .logout()
                .permitAll()//定义logout不需要验证
                .and()
                .formLogin()//使用form表单登录

    }

}

后面要进入API规划了。

本文分享自微信公众号 - 麒思妙想(qicai1612),作者:dafei1288

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-01-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 使用Spark轻松做数据透视(Pivot)

    spark从1.6开始引入,到现在2.4版本,pivot算子有了进一步增强,这使得后续无论是交给pandas继续做处理,还是交给R继续分析,都简化了不少。大家无...

    麒思妙想
  • 我也能写数据库 —— Streaming(下)

    在上一篇文章中介绍了,如何在select语句中使用stream关键字,进行流查询,并且模拟了简单数据结构,有兴趣的同学可以移步去看看( streaming上篇)...

    麒思妙想
  • JDK10居然都发布了

    今天突然发现JDK10居然都发布了,真的感觉JDK9发布没几天啊,下面是介绍具体内容的链接,我就不复制了....

    麒思妙想
  • spring+springMVC 整合 MongoDB 实现注册登录

    发现一入手 MongoDB,便无法脱离,简要说一下,MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的...

    Krry
  • Visual Studio Magazine -Mono for Android

    Cross-Platform Development With Mono for Android -- Visual Studio Magazine -plat...

    张善友
  • python3 进程锁

    多进程抢占资源 当多个进程使用同一份数据资源的时候,就会引发数据安全或顺序混乱问题。

    py3study
  • 一个简单且易上手的 Spring boot 后台管理框架 EL-ADMIN

    一个基于 Spring Boot 2.1.0 、 Spring Boot Jpa、 JWT、Spring Security、Redis、Vue 的前后端分离的后...

    java思维导图
  • JavaScript变量和数据类型

    1.JavaScript变量 javascript的变量是松散类型的(弱类型),也就是说一个变量可以用来保存任何类型的数据,每个变量仅仅是用来保存值的占位符。变...

    水击三千
  • JavaScript学习笔记029-fetch0公共接口调用

    Mr. 柳上原
  • JavaScript基础知识梳理(上)

    其实诀窍很简单,常见的基本是 3 种情况:es5 普通函数、es6 的箭头函数以及通过bind改变过上下文返回的新函数。

    心谭博客

扫码关注云+社区

领取腾讯云代金券