参考:https://www.cnblogs.com/wmyskxz/p/9010832.html
1.文章中加了个上下文context-path=/hello
访问的时候我访问 http://localhost:8080/hello Whitelabel Error Page http://localhost:8080 404
后面发现不是那么回事,是上下文。如果想访问hello,应该是这样的 http://localhost:8080/hello/hello 前面的hello是上下文,后面那个才是对应controller的url
2.配置支持jsp的时候,参考文章不成功。
后面把下面的一句中provided去掉就行了。
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<!-- <scope>provided</scope>-->
</dependency>
3.其中让springboot能支持热部署,idea需要额外参考https://blog.csdn.net/xusheng_Mr/article/details/78771746 文中有
第二步这个比较关键组合键:Shift+ALT+Ctrl+/ ,选择“Registry”,回车,找到“complier.automake.allow.when.app.running”
4.解决CsrfFilter与Rest服务Post方式的矛盾 好像csrf和post有冲突。
参考:https://blog.csdn.net/sinat_28454173/article/details/52251004
5.security设置defaultSuccessUrl()不起作用问题
参考:https://blog.csdn.net/jia__/article/details/78304932
6.security登陆既不走成功的url,又不走失败的url,还是走默认的/login。解题思路:放开所有限制,让所有的都不用认证。登录发现报错了。请求到了/error,但是/error需要认证,所以一直走/login。认证中排除掉/error就ok了。
7.spring boot 2用的是spring security 5 没有直接的MD5passwordencode 了,说md5不怎么安全,以前代码用MD5并且加了盐值。对应的是新的方式处理。用 new MessageDigestPasswordEncoder("MD5")
参考:https://info.michael-simons.eu/2018/01/13/spring-security-5-new-password-storage-format/
不过我这个是有盐值。但是重写passwordEncoder,里面获取不到传入的用户账号,本来打算用SecurityContextHolder.getContext().getAuthentication().getPrincipal()
但是为null 可能是不在过滤器中,因为是登录界面,另外网上说是过程完成后自动清理掉了。不知道怎么获取了。用threadlocal 存一下吧。
代码如下。
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception{
auth.userDetailsService(
new UserDetailsService() {
@Overrid