前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于REST的数据处理流程_开发环境踩坑

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

作者头像
麒思妙想
发布2020-07-10 17:37:00
6480
发布2020-07-10 17:37:00
举报
文章被收录于专栏:麒思妙想麒思妙想

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

版本使用:

代码语言:javascript
复制
kotlin_version = '1.2.10'
springBootVersion = '1.5.9.RELEASE'

今天只记录坑:

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

代码语言:javascript
复制
#日志颜色
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'.

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

代码语言:javascript
复制
http.csrf().disable()

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

又是一番搜索

代码语言:javascript
复制
http.headers().frameOptions().disable();

搞定。

整个测试代码如下:

代码语言:javascript
复制
@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规划了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-01-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 麒思妙想 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Whitelabel Error Page
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档