Skip to content

0322

  • 熟悉jpa使用:定义dao查询接口XxxRepository,

    继承JpaRepository<T, ID>接口,用来支持接口规范方法名查询

    继承自定义的XxxRepositoryCustom接口,用来实现自定义的查询,使用JdbcTemplate实现

  • 熟悉jdbc使用:NamedParameterJdbcTemplate。支持命名参数拼接sql语句,拼接完后的对象会委托给包装类JdbcTemplate,提供query及queryForXXX方法、update及batchUpdate方法。

    BeanPropertyRowMapper。用于列的映射,通常使用,BeanPropertyRowMapper.newInstance(Clazz.class)创建一个一一映射的对象。

  • 关于控制台输出sql:项目使用的log4j,在log4j2.xml修改level为debug即可

  • 熟悉项目创建会话逻辑:调用createSession生成会话信息,中间经过校验,生成包括会话id、key、设备登录失败次数、设备状态,信息缓存redis且落库。返回sessionId

  • 熟悉项目登录逻辑:请求参数需提供appid,获取登录用户信息,登录(检查当前会话是否存在,生成token落库),按端互踢,AccountKickUtils accountKickUtils.kickOthersAndCacheToken

  • 关于多端互踢:①根据用户id获取redis缓存token②存在oldtoken,将删除redis的token,以及调用logout方法登出③添加newToken

  • 了解OAuth2的token类型:BEARER,会去从redis和库中获取token值进行校验,传输透明易被复用,MAC,请求会被签名,包括nonce(理解为只使用一次的随机数)和其他信息,然后去进行mac计算校验

  • 关于nonce:由客户端生成,用于使请求唯一,防止恶意客户端重放攻击 存放在redis上每次请求进行check