是五月呀!


  • 首页

  • 分类

  • 归档

  • 标签

  • 关于
是五月呀!

java序列化和serialVersionUID

发表于 2018-11-27 | 分类于 java | 字数统计: 625(字) | 阅读时长: 2(分)

关于jdk的序列化,可以参考java.io.Serializable中的javadoc,这里摘取翻译一部分:

类通过实现 java.io.Serializable 接口以启用其序列化功能。
未实现此接口的类将无法使其任何状态序列化或反序列化。
可序列化类的所有子类型本身都是可序列化的。因为实现接口也是间接的等同于继承。

阅读全文 »
是五月呀!

BeanPostProcessor中autowired导致AOP失效

发表于 2018-11-26 | 分类于 spring | 字数统计: 435(字) | 阅读时长: 2(分)

在使用SpringBoot集成shiro时,遇到过一个问题,在启动时,shiroFilter中使用的bean都报WARN异常:

1
2
3
4
5
...
trationDelegate$BeanPostProcessorChecker : Bean 'adminService' of type [com.mypackage.service.AdminService] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
trationDelegate$BeanPostProcessorChecker : Bean 'sessionManager' of type [org.apache.shiro.web.session.mgt.DefaultWebSessionManager] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
trationDelegate$BeanPostProcessorChecker : Bean 'securityManager' of type [org.apache.shiro.web.mgt.DefaultWebSecurityManager] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
...

阅读全文 »
是五月呀!

SpringBoot中BeanPostProcessor注册

发表于 2018-11-26 | 分类于 spring | 字数统计: 444(字) | 阅读时长: 2(分)

在使用SpringBoot集成shiro时,遇到过一个问题,shiro需要注册一个LifecycleBeanPostProcessor,用来调用内部的init()和destroy()方法。
一般在Configuration中注册:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
@Configuration
public class SpringServiceConfig {
@Autowired
private SpringDataSourceConfig springDataSourceConfig;
private SpringRedisConfig springRedisConfig;
@Autowired
public SpringServiceConfig(SpringRedisConfig springRedisConfig) {
this.springRedisConfig = springRedisConfig;
}
//sessionManager securityManager realm...
@Bean
public LifecycleBeanPostProcessor lifecycleBeanPostProcessor() {
return new LifecycleBeanPostProcessor();
}
@Bean
@DependsOn({"lifecycleBeanPostProcessor"})
public DefaultAdvisorAutoProxyCreator advisorAutoProxyCreator() {
DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator = new DefaultAdvisorAutoProxyCreator();
defaultAdvisorAutoProxyCreator.setProxyTargetClass(true);
return defaultAdvisorAutoProxyCreator;
}
}

阅读全文 »
是五月呀!

SpringBoot中的bean加载顺序

发表于 2018-11-23 | 分类于 spring | 字数统计: 1,873(字) | 阅读时长: 9(分)

最近在做传统Spring项目到SpringBoot项目迁移过程中,遇到了一些bean加载顺序的问题:
比如一个config中的bean依赖于另一个config中的bean进行初始化,于是查了一些资料,出现了一些新的概念:

  • @Order
  • @AutoConfigureAfter
  • @DependsOn
阅读全文 »
是五月呀!

shiro开发(四)Realm及相关对象

发表于 2018-11-21 | 分类于 shiro | 字数统计: 1,004(字) | 阅读时长: 4(分)

AuthenticationToken

AuthenticationToken用于收集用户提交的身份(如用户名)及凭据(如密码):

1
2
3
4
public interface AuthenticationToken extends Serializable {
Object getPrincipal(); //身份
Object getCredentials(); //凭据
}

扩展接口RememberMeAuthenticationToken提供了boolean isRememberMe()实现“记住我”的功能;
扩展接口HostAuthenticationToken提供了String getHost()方法用于获取用户“主机”的功能。

Shiro提供了一个直接拿来用的UsernamePasswordToken,用于实现用户名/密码Token组,另外其实现了RememberMeAuthenticationToken和HostAuthenticationToken,可以实现记住我及主机验证的支持。

阅读全文 »
是五月呀!

shiro开发(三)授权

发表于 2018-11-21 | 分类于 shiro | 字数统计: 3,998(字) | 阅读时长: 16(分)

授权,也叫访问控制,即在应用中控制谁能访问哪些资源(如访问页面/编辑数据/页面操作等)。
在授权中需了解的几个关键对象:主体(Subject)、资源(Resource)、权限(Permission)、角色(Role)。

阅读全文 »
是五月呀!

shiro开发(二)认证

发表于 2018-11-20 | 分类于 shiro | 字数统计: 2,688(字) | 阅读时长: 12(分)

认证,即在应用中谁能证明他就是他本人。一般提供如他们的身份ID一些标识信息来表明他就是他本人,如提供身份证,用户名/密码来证明。

在shiro中,用户需要提供 principals(身份)和 credentials(证明)给shiro,从而应用能验证用户身份:

  • principals:身份,即主体的标识属性,可以是任何东西,如用户名、邮箱等,唯一即可。一个主体可以有多个principals,但只有一个Primary principals,一般是用户名/手机号。
  • credentials:证明/凭证,即只有主体知道的安全值,如密码/数字证书等。

最常见的principals和credentials组合就是用户名/密码了。接下来先进行一个基本的身份认证。

阅读全文 »
是五月呀!

shiro开发(一)shiro简介

发表于 2018-11-20 | 分类于 shiro | 字数统计: 1,453(字) | 阅读时长: 5(分)

Apache Shiro是Java的一个安全框架。
Shiro可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE环境,也可以用在JavaEE环境。Shiro可以帮助我们完成:认证、授权、加密、会话管理、与Web集成、缓存等。
基本功能如下:

阅读全文 »
是五月呀!

logstash-logback-encoder使用

发表于 2018-11-19 | 分类于 logback | 字数统计: 1,265(字) | 阅读时长: 7(分)

业务场景:
日志系统整体迁入ELK,大体需要两种日志:

  • 纯业务日志,记录业务代码中的信息;
  • 访问日志,包括请求参数和返回结果。

关于ELK这里不做过多讲解,一般也是公司运维同事维护,这里只介绍如何将日志打印成可被收集输送到es的json格式。

阅读全文 »
是五月呀!

logback基本配置

发表于 2018-11-19 | 分类于 logback | 字数统计: 3,269(字) | 阅读时长: 13(分)

从common-logging到slf4j

common-logging

common-logging 是apache提供的一个通用的日志接口。用户可以自由选择第三方的日志组件作为具体实现,像log4j,或者jdk自带的logging。
common-logging会通过动态查找的机制,在程序运行时自动找出真正使用的日志库。当然,common-logging内部有一个Simple logger的简单实现,但是功能很弱。
所以使用common-logging,通常都是配合着log4j来使用。使用它的好处就是,代码依赖是common-logging而非log4j, 避免了和具体的日志方案直接耦合,在有必要时,可以更改日志实现的第三方库。

阅读全文 »
123…7
五月y

五月y

Hello 五月y!

67 日志
24 分类
20 标签
RSS
GitHub weibo zhihu
© 2017 - 2018 五月y
由 Hexo 强力驱动
主题 - NexT.Mist