- Spring Security OAuth2.0在分布式系统中的安全实践
引言分布式系统架构下,安全认证与授权面临跨服务、高并发、多租户等挑战。SpringSecurity与OAuth2.0的结合为微服务安全提供了标准化解决方案。分布式系统中的安全挑战跨服务身份认证的复杂性令牌管理的可扩展性问题多租户场景下的权限隔离需求防止CSRF、XSS等常见攻击SpringSecurityOAuth2.0核心架构授权服务器设计@EnableAuthorizationServer配置
- 【C语言/数据结构】顺序表的基本操作
一.程序可实现:初始化建立清空判满输出销毁删除(按数值/按位置)查找(按数值/按位置)插入(按数值/按位置)ps:“按数值”默认操作对象是指顺序表中第一个同值的元素。二.网上查找的有关参考有关++i和i++的区别以及在for()循环语句中的应用细节.C++中函数的形参带&和不带&的差别.C语言指针作为形参的一些问题.三.完整代码如下:注意!!!我使用的编译器为Xcode,程序直接放在Devc++等
- 在MacBook上安装Homebrew的完整指南
VictorWuuu
后端macos
在MacBook上安装Homebrew的完整指南如下,覆盖Intel和AppleSilicon(M1/M2)芯片机型,并针对国内网络环境优化:一、安装前准备检查系统版本确保macOS版本为10.14或更高(推荐升级至最新版)。安装Xcode命令行工具这是Homebrew的依赖项,在终端执行:xcode-select--install若提示“无法安装”,访问苹果开发者官网手动下载对应版本的Comma
- Openstack Neutron 专题
1.构架2.代码3.cmdneutronnet-listneutronrouter-listneutronsecurity-group-listneutronsecurity-group-showb4850001-security-group-idneutronsecurity-group-rule-listneutronsecurity-group-rule-show2ca442c7-secur
- Xcode调用栈时小图标代表什么意思
WinJayQ
对底层感兴趣,经常查看调用栈的朋友,肯定发现了调用栈相关方法旁边有很多小图标,那么它们究竟代表什么意思呢?具体如下:image.png
- docx格式的word文档转为markdown
界北鲲鹏
markdowndocmacromedia
请注意系统版本!docx格式的word文档转为markdown安装pandocexe安装包,一般需要下载安装Chocolatey安装以管理员打开powershell执行Set-ExecutionPolicyBypass-ScopeProcess-Force;[System.Net.ServicePointManager]::SecurityProtocol=[System.Net.ServiceP
- 网络安全-网络安全智能体所有详细工作原理和架构及案例
大家读完觉得有帮助记得关注和点赞!!!网络安全智能体(AISecurityAgent)是人工智能与网络安全融合的新范式,通过自主感知、分析决策、联动响应实现动态防护,正在重构传统“人防为主”的安全体系。以下从工作原理、架构设计、行业案例三方面进行深度解析:一、工作原理:三层认知闭环与动态进化1.核心能力分层(L1-L5标准)等级能力特征代表产品L1基础辅助型单步推理,处理预定义任务(如告警初判)9
- mac m1使用docker 安装es kibana ik分词器
Maosmallming
dockerelasticsearchmacos
0.安装docker可参考以下文章http://t.csdnimg.cn/fMXu61.拉取elasticsearch镜像资源,本人下载的是8.6.2版本dockerpullelasticsearch:8.6.22.在本机中提前创建好yml文件elasticsearch.ymlhttp:host:0.0.0.0xpack.security.enabled:falsexpack.security.e
- Mac 使用Docker安装Elasticsearch、Kibana 、ik分词器、head
风中带血
macosdockerelasticsearch
安装ElasticSearch通过docker安装esdockerpullelasticsearch:7.8.1在本地创建elasticsearch.yml文件mkdir/Users/ky/Documents/learn/es/elasticsearch.yml编辑yml文件内容http:host:0.0.0.0xpack.security.enabled:falsexpack.security.
- 使用阿里云 ESA 边缘函数转发代理 docker registry
ESADockerRegistryProxy这是一个基于AlibabaESA(EdgeSecurityAcceleration)的DockerRegistry转发代理,为中国大陆用户提供更快的Docker镜像下载服务,并实现镜像白名单功能以增强安全性。开源地址:https://github.com/jqknono/esa-registry-proxy功能特性DockerRegistry代理:转发D
- Microservices Security Questions - 3
张羽辰
QuestionDoyouhaveapasswordreminderfeature?Coulditbeusedtoenumerateuseraccounts?AnswerWecan'tassumetheusertorememberthepasswordforever,butsometimeswedoneedtohelppeopletorecallthepasswordtoavoidsendrese
- Cacti 多行SNMP响应验证致代码执行漏洞(CVE-2025-22604)
毒手无盐虎
安全网络
漏洞描述Cacti是一个开源的性能和故障管理框架。由于多行SNMP结果解析器中的漏洞,经过身份验证的用户可以在响应中注入恶意代码,在后续解析时导致命令执行漏洞。解决建议官方已发布1.2.29版本,建议升级至最新版本。参考链接https://github.com/Cacti/cacti/security/advisories/GHSA-c5j8-jxj3-hh36
- 如何判断钱包的合约签名是否安全?
duoyasong5907
通用技术知识安全区块链
假如有以下交互,可以看到钱包试图调用地址0xBe535合约的方法SecurityUpdate到区块链浏览器搜索这个合约地址https://holesky.etherscan.io/address/0xBe535A82F2c3895bdACEb3ffe6B9B80ac2F832a0#code,可以看到这个函数是一个转账函数,因此不要点击它:
- 入门网络安全,NISP真的有必要考吗?
一、NISP是什么?国家信息安全水平考试(NationalInformationSecurityTestProgram,简称NISP),是由中国信息安全测评中心实施培养国家网络空间安全人才的项目,由国家网络空间安全人才培养基地运营/管理。说白了就是国家为了发展网络安全而搭建的一个培训、认证考试平台。由国家做背书,属于国家级别的认证考试。NISP认证分为一级、二级、三级,证书由中国信息安全测评中心颁
- 中国计算机学会(CCF)推荐学术会议-C(网络与信息安全):ACM ASIACCS 2026
爱思德学术
网络安全信息与通信密码学
ACMASIACCS2026BuildingonthesuccessofACMConferenceonComputerandCommunicationsSecurity(CCS),theACMSpecialInterestGrouponSecurity,Audit,andControl(SIGSAC)formallyestablishedtheannualACMAsiaConferenceonCo
- Spring Security 单点登录与自动登录机制详解
从零开始学习人工智能
springpythonjava
在现代企业级应用中,用户需要访问多个相关但独立的系统。传统的每次访问都需要重新登录的方式不仅用户体验差,而且安全性也难以保障。本文将深入探讨基于SpringSecurity的单点登录(SSO)和自动登录机制的实现原理。一、核心概念解析1.1单点登录(SSO)单点登录是指用户只需要登录一次,就可以访问所有相互信任的应用系统。1.2自动登录(RememberMe)自动登录是指用户在一定时间内无需重复输
- 常见的Xcode编译报错
kingwl110
问题1couldnotreaddatafrom'/Users/xxxx/xxxx/Info.plist':Thefile“Info.plist”couldn’tbeopened原因刚才创建完工程之后,对工程中的文件夹以及文件移动了位置。我把Info.plist文件放到其他路径下边了。所以导致Xcode找不到Info.plist文件。解决办法:1.把Info.plist文件放回原处,也就是工程根目录
- 黑客如何定位服务器真实IP?3种技术手段解析
群联云防护小杜
安全问题汇总服务器tcp/ip运维人工智能ddos网络协议自动化
一、黑客常用定位技术DNS历史记录查询通过查询域名的历史解析记录获取原始IP:importdns.resolverimportrequestsdefcheck_dns_history(domain):#使用SecurityTrailsAPI查询历史DNS记录api_key="YOUR_API_KEY"url=f"https://api.securitytrails.com/v1/history/{
- Android SELinux——安全策略(三)
c小旭
AndroidSELinuxandroidSELinux
SELinux通过严格的访问控制机制增强了Linux系统的安全性。它通过标签和安全策略来控制进程和文件的访问权限,从而保护系统免受未经授权的访问和攻击。一、策略介绍1、主要组件安全标签(SecurityLabels):每个文件、目录、进程等都有一个安全标签。标签包含类型(Type)、角色(Role)、用户(User)和类别(Category)等信息。安全策略(SecurityPolicies):S
- Nginx + ModSecurity + OWASP CRS + Lua + GEOIP2 构建传统WAF
Nginx+ModSecurity+OWASPCRS+Lua+GEOIP2构建传统WAF一、环境介绍二、编译工具安装三、编译安装ModSecurityv3四、ModSecurity-Nginx连接器下载五、编译安装LuaJIT六、ngx_devel_kit下载七、lua-nginx-module下载八、编译安装lua-resty-core九、编译安装lua-resty-lrucache十、OWAS
- Linux系统排查4——网络篇
我只是一个小白木木
原文http://www.cnblogs.com/Security-Darren/p/4700387.html
- spring security 3 auto-config=“true”
springsecurity3设置auto-config=true时,会配置十个默认过滤器SecurityContextPersistenceFilterLogoutFilterUsernamePasswordAuthenticationFilterBasicAuthenticationFilterRequestCacheAwareFilterSecurityContextHolderAwareR
- Spring Security架构中过滤器的实现
面朝大海,春不暖,花不开
SpringSecurityJavaSpringBootSpringSecurity
SpringSecurity过滤器基础过滤器链工作原理在SpringSecurity架构中,过滤器链(FilterChain)是安全机制的核心实现方式。当HTTP请求到达时,会依次通过一系列具有明确顺序的过滤器。例如认证过滤器会拦截请求并将认证职责委托给授权管理器。若需要在认证前执行特定逻辑,只需在认证过滤器之前插入自定义过滤器即可。SpringSecurity的过滤器属于典型的HTTP过滤器,通
- 斯威夫特山地车_斯威夫特字典
cunchi4221
pythonjava数据结构androidredis
斯威夫特山地车SwiftDictionaryisoneoftheimportantcollectiontypes.Let’sgetstartedbylaunchingtheplaygroundinXCode.Swift字典是重要的收藏类型之一。让我们从XCode启动游乐场开始。斯威夫特字典(SwiftDictionary)SwiftDictionaryisacollectionofkey-valu
- Tabman 2迁移指南:从旧版本升级到全新架构
陆欣瑶
Tabman2迁移指南:从旧版本升级到全新架构前言Tabman作为iOS平台上功能强大的分页视图控制器,在2.0版本中进行了全面重构。本文将从技术实现角度,深入解析Tabman2的架构变化,帮助开发者顺利完成迁移工作。环境要求在开始迁移前,请确保开发环境满足以下要求:iOS9及以上系统版本Xcode10及以上开发工具Swift4.2及以上语言版本核心架构变化Tabman2进行了彻底的重构,主要改进
- 全链路跟踪关键技术-ThreadLocal
txxs
架构
转自:https://github.com/alibaba/transmittable-thread-local/issues/123应用场景的文章Java多线程上下文传递在复杂场景下的实践byvivo互联网技术(海外商城租户区分)2021-02-01SpringSecurityOAuth2.0认证授权五:用户信息扩展到jwt2021-01-14再谈Token认证,如何快速方便获取用户信息By尹吉
- Error: Multiple commands produce……
燃_火
今天遇到一个问题,代码运行的时候出现了错误,下图:3CF4B2626DB611D7F9191BE34D6EEB6E.png这是Xcode10更新后的一个坑,无奈!记录一下解决方法:1、找到屏幕顶层工具栏中的File,点击-选择ProjectSettingsqq_pic_merged_1556606469607.jpg2、将NewBuildSystem(Default)切换成Legacybuilds
- 学习小结记录
歪歪驴
学习网络
一、TLS(TransportLayerSecurity)握手是建立安全通信通道的关键过程,确保客户端与服务器之间的通信加密和身份验证。以下是TLS1.2和TLS1.3的握手流程详解及对比:TLS1.2握手流程目标:协商加密套件、交换密钥、验证身份步骤:1.ClientHello-客户端发送支持的TLS版本、加密套件列表(如`AES256-GCM-SHA384`)、随机数(ClientRandom
- 2.1 UIView视图的基本使用 [iOS开发-Xcode教程]
互动教程网
1.在欢迎窗口右侧的历史项目列表中,双击打开之前创建的单视图项目模板。image2.本节课将为您演示,如何创建最基本的视图对象。在此使用之前创建的空白项目,然后打开视图控制器的代码文件。image3.接着我们来一步步编写代码,在视图控制器的根视图里,添加两个视图对象。image4.初始化一个CGRect对象,它在屏幕上定义了一个矩形的显示区域。包含了对象的原点位置,和大小尺寸信息。image5.创
- Mac安装Homebrew(国内源)步骤指南
莲华君
MacbookHomebrew
一、准备工作安装XcodeCommandLineTools(仅限Mac用户)在终端执行以下命令,按提示完成安装:xcode-select--install二、一键安装Homebrew(推荐)使用国内开发者维护的Gitee镜像脚本,自动配置国内源:执行安装脚本复制以下命令到终端运行(支持Mac和Linux):/bin/zsh-c"$(curl-fsSLhttps://gitee.com/cunkai
- Java常用排序算法/程序员必须掌握的8大排序算法
cugfy
java
分类:
1)插入排序(直接插入排序、希尔排序)
2)交换排序(冒泡排序、快速排序)
3)选择排序(直接选择排序、堆排序)
4)归并排序
5)分配排序(基数排序)
所需辅助空间最多:归并排序
所需辅助空间最少:堆排序
平均速度最快:快速排序
不稳定:快速排序,希尔排序,堆排序。
先来看看8种排序之间的关系:
1.直接插入排序
(1
- 【Spark102】Spark存储模块BlockManager剖析
bit1129
manager
Spark围绕着BlockManager构建了存储模块,包括RDD,Shuffle,Broadcast的存储都使用了BlockManager。而BlockManager在实现上是一个针对每个应用的Master/Executor结构,即Driver上BlockManager充当了Master角色,而各个Slave上(具体到应用范围,就是Executor)的BlockManager充当了Slave角色
- linux 查看端口被占用情况详解
daizj
linux端口占用netstatlsof
经常在启动一个程序会碰到端口被占用,这里讲一下怎么查看端口是否被占用,及哪个程序占用,怎么Kill掉已占用端口的程序
1、lsof -i:port
port为端口号
[root@slave /data/spark-1.4.0-bin-cdh4]# lsof -i:8080
COMMAND PID USER FD TY
- Hosts文件使用
周凡杨
hostslocahost
一切都要从localhost说起,经常在tomcat容器起动后,访问页面时输入http://localhost:8088/index.jsp,大家都知道localhost代表本机地址,如果本机IP是10.10.134.21,那就相当于http://10.10.134.21:8088/index.jsp,有时候也会看到http: 127.0.0.1:
- java excel工具
g21121
Java excel
直接上代码,一看就懂,利用的是jxl:
import java.io.File;
import java.io.IOException;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import jxl.write.Label;
import
- web报表工具finereport常用函数的用法总结(数组函数)
老A不折腾
finereportweb报表函数总结
ADD2ARRAY
ADDARRAY(array,insertArray, start):在数组第start个位置插入insertArray中的所有元素,再返回该数组。
示例:
ADDARRAY([3,4, 1, 5, 7], [23, 43, 22], 3)返回[3, 4, 23, 43, 22, 1, 5, 7].
ADDARRAY([3,4, 1, 5, 7], "测试&q
- 游戏服务器网络带宽负载计算
墙头上一根草
服务器
家庭所安装的4M,8M宽带。其中M是指,Mbits/S
其中要提前说明的是:
8bits = 1Byte
即8位等于1字节。我们硬盘大小50G。意思是50*1024M字节,约为 50000多字节。但是网宽是以“位”为单位的,所以,8Mbits就是1M字节。是容积体积的单位。
8Mbits/s后面的S是秒。8Mbits/s意思是 每秒8M位,即每秒1M字节。
我是在计算我们网络流量时想到的
- 我的spring学习笔记2-IoC(反向控制 依赖注入)
aijuans
Spring 3 系列
IoC(反向控制 依赖注入)这是Spring提出来了,这也是Spring一大特色。这里我不用多说,我们看Spring教程就可以了解。当然我们不用Spring也可以用IoC,下面我将介绍不用Spring的IoC。
IoC不是框架,她是java的技术,如今大多数轻量级的容器都会用到IoC技术。这里我就用一个例子来说明:
如:程序中有 Mysql.calss 、Oracle.class 、SqlSe
- 高性能mysql 之 选择存储引擎(一)
annan211
mysqlInnoDBMySQL引擎存储引擎
1 没有特殊情况,应尽可能使用InnoDB存储引擎。 原因:InnoDB 和 MYIsAM 是mysql 最常用、使用最普遍的存储引擎。其中InnoDB是最重要、最广泛的存储引擎。她 被设计用来处理大量的短期事务。短期事务大部分情况下是正常提交的,很少有回滚的情况。InnoDB的性能和自动崩溃 恢复特性使得她在非事务型存储的需求中也非常流行,除非有非常
- UDP网络编程
百合不是茶
UDP编程局域网组播
UDP是基于无连接的,不可靠的传输 与TCP/IP相反
UDP实现私聊,发送方式客户端,接受方式服务器
package netUDP_sc;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.Ine
- JQuery对象的val()方法执行结果分析
bijian1013
JavaScriptjsjquery
JavaScript中,如果id对应的标签不存在(同理JAVA中,如果对象不存在),则调用它的方法会报错或抛异常。在实际开发中,发现JQuery在id对应的标签不存在时,调其val()方法不会报错,结果是undefined。
- http请求测试实例(采用json-lib解析)
bijian1013
jsonhttp
由于fastjson只支持JDK1.5版本,因些对于JDK1.4的项目,可以采用json-lib来解析JSON数据。如下是http请求的另外一种写法,仅供参考。
package com;
import java.util.HashMap;
import java.util.Map;
import
- 【RPC框架Hessian四】Hessian与Spring集成
bit1129
hessian
在【RPC框架Hessian二】Hessian 对象序列化和反序列化一文中介绍了基于Hessian的RPC服务的实现步骤,在那里使用Hessian提供的API完成基于Hessian的RPC服务开发和客户端调用,本文使用Spring对Hessian的集成来实现Hessian的RPC调用。
定义模型、接口和服务器端代码
|---Model
&nb
- 【Mahout三】基于Mahout CBayes算法的20newsgroup流程分析
bit1129
Mahout
1.Mahout环境搭建
1.下载Mahout
http://mirror.bit.edu.cn/apache/mahout/0.10.0/mahout-distribution-0.10.0.tar.gz
2.解压Mahout
3. 配置环境变量
vim /etc/profile
export HADOOP_HOME=/home
- nginx负载tomcat遇非80时的转发问题
ronin47
nginx负载后端容器是tomcat(其它容器如WAS,JBOSS暂没发现这个问题)非80端口,遇到跳转异常问题。解决的思路是:$host:port
详细如下:
该问题是最先发现的,由于之前对nginx不是特别的熟悉所以该问题是个入门级别的:
? 1 2 3 4 5
- java-17-在一个字符串中找到第一个只出现一次的字符
bylijinnan
java
public class FirstShowOnlyOnceElement {
/**Q17.在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b
* 1.int[] count:count[i]表示i对应字符出现的次数
* 2.将26个英文字母映射:a-z <--> 0-25
* 3.假设全部字母都是小写
*/
pu
- mongoDB 复制集
开窍的石头
mongodb
mongo的复制集就像mysql的主从数据库,当你往其中的主复制集(primary)写数据的时候,副复制集(secondary)会自动同步主复制集(Primary)的数据,当主复制集挂掉以后其中的一个副复制集会自动成为主复制集。提供服务器的可用性。和防止当机问题
mo
- [宇宙与天文]宇宙时代的经济学
comsci
经济
宇宙尺度的交通工具一般都体型巨大,造价高昂。。。。。
在宇宙中进行航行,近程采用反作用力类型的发动机,需要消耗少量矿石燃料,中远程航行要采用量子或者聚变反应堆发动机,进行超空间跳跃,要消耗大量高纯度水晶体能源
以目前地球上国家的经济发展水平来讲,
- Git忽略文件
Cwind
git
有很多文件不必使用git管理。例如Eclipse或其他IDE生成的项目文件,编译生成的各种目标或临时文件等。使用git status时,会在Untracked files里面看到这些文件列表,在一次需要添加的文件比较多时(使用git add . / git add -u),会把这些所有的未跟踪文件添加进索引。
==== ==== ==== 一些牢骚
- MySQL连接数据库的必须配置
dashuaifu
mysql连接数据库配置
MySQL连接数据库的必须配置
1.driverClass:com.mysql.jdbc.Driver
2.jdbcUrl:jdbc:mysql://localhost:3306/dbname
3.user:username
4.password:password
其中1是驱动名;2是url,这里的‘dbna
- 一生要养成的60个习惯
dcj3sjt126com
习惯
一生要养成的60个习惯
第1篇 让你更受大家欢迎的习惯
1 守时,不准时赴约,让别人等,会失去很多机会。
如何做到:
①该起床时就起床,
②养成任何事情都提前15分钟的习惯。
③带本可以随时阅读的书,如果早了就拿出来读读。
④有条理,生活没条理最容易耽误时间。
⑤提前计划:将重要和不重要的事情岔开。
⑥今天就准备好明天要穿的衣服。
⑦按时睡觉,这会让按时起床更容易。
2 注重
- [介绍]Yii 是什么
dcj3sjt126com
PHPyii2
Yii 是一个高性能,基于组件的 PHP 框架,用于快速开发现代 Web 应用程序。名字 Yii (读作 易)在中文里有“极致简单与不断演变”两重含义,也可看作 Yes It Is! 的缩写。
Yii 最适合做什么?
Yii 是一个通用的 Web 编程框架,即可以用于开发各种用 PHP 构建的 Web 应用。因为基于组件的框架结构和设计精巧的缓存支持,它特别适合开发大型应
- Linux SSH常用总结
eksliang
linux sshSSHD
转载请出自出处:http://eksliang.iteye.com/blog/2186931 一、连接到远程主机
格式:
ssh name@remoteserver
例如:
ssh
[email protected]
二、连接到远程主机指定的端口
格式:
ssh name@remoteserver -p 22
例如:
ssh i
- 快速上传头像到服务端工具类FaceUtil
gundumw100
android
快速迭代用
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOExceptio
- jQuery入门之怎么使用
ini
JavaScripthtmljqueryWebcss
jQuery的强大我何问起(个人主页:hovertree.com)就不用多说了,那么怎么使用jQuery呢?
首先,下载jquery。下载地址:http://hovertree.com/hvtart/bjae/b8627323101a4994.htm,一个是压缩版本,一个是未压缩版本,如果在开发测试阶段,可以使用未压缩版本,实际应用一般使用压缩版本(min)。然后就在页面上引用。
- 带filter的hbase查询优化
kane_xie
查询优化hbaseRandomRowFilter
问题描述
hbase scan数据缓慢,server端出现LeaseException。hbase写入缓慢。
问题原因
直接原因是: hbase client端每次和regionserver交互的时候,都会在服务器端生成一个Lease,Lease的有效期由参数hbase.regionserver.lease.period确定。如果hbase scan需
- java设计模式-单例模式
men4661273
java单例枚举反射IOC
单例模式1,饿汉模式
//饿汉式单例类.在类初始化时,已经自行实例化
public class Singleton1 {
//私有的默认构造函数
private Singleton1() {}
//已经自行实例化
private static final Singleton1 singl
- mongodb 查询某一天所有信息的3种方法,根据日期查询
qiaolevip
每天进步一点点学习永无止境mongodb纵观千象
// mongodb的查询真让人难以琢磨,就查询单天信息,都需要花费一番功夫才行。
// 第一种方式:
coll.aggregate([
{$project:{sendDate: {$substr: ['$sendTime', 0, 10]}, sendTime: 1, content:1}},
{$match:{sendDate: '2015-
- 二维数组转换成JSON
tangqi609567707
java二维数组json
原文出处:http://blog.csdn.net/springsen/article/details/7833596
public class Demo {
public static void main(String[] args) { String[][] blogL
- erlang supervisor
wudixiaotie
erlang
定义supervisor时,如果是监控celuesimple_one_for_one则删除children的时候就用supervisor:terminate_child (SupModuleName, ChildPid),如果shutdown策略选择的是brutal_kill,那么supervisor会调用exit(ChildPid, kill),这样的话如果Child的behavior是gen_