Java项目场景面试题

时间:2024-10-10 07:27:47

1.单点登录这块怎么实现的?

1)解释下单点登录,Single Sign On(SSO),只需要登录一次,就可以访问所有信任的应用系统。

2)常见解决方案:JWT

  • 用户访问其他系统,会在网关层判断token是否有效
  • 如果token无效则会返回401表示认证失败,这时前端跳转到登录页面
  • 用户发送登录请求,后端校验用户成功后返回给浏览器一个token,浏览器把token保存到cookie中
  • 再去访问其他服务的时候,都需要携带token,由网关统一验证后路由到目标服务。

2、权限认证是如何实现的?

1)后台管理系统的开发经验

2)介绍RBAC权限模型5张表的关系(用户、角色、权限)

3)权限框架:Apache shiro、Spring security(推荐)

3、上传数据的 安全性你们怎么控制?

使用非对称加密或者对称加密:

1)对称加密:加密和解密使用相同的秘钥,即加密秘钥也可以作为解密秘钥。

  • 优点:加密速度快,效率高
  • 缺点:相对不太安全,容易破解,建议不要保存敏感信息

2)非对称加密:公开秘钥和私有秘钥两种,公开秘钥加密,私有秘钥解密

  • 优点:与对称加密相比,安全性更高
  • 缺点:加密和解密速度慢,建议少量数据加密 

4、你负责项目的时候遇到了哪些比较棘手的问题?怎么解决的?

 6、项目中使用过日志吗?怎么排查问题?

查看日志的命令:

  • 实时监控日志的变化:tail -f
  • 按照行号查找:tail -n 100
  • 查询某一个日志的区间:cat -n | tail -n +100 | head -n 100 (查询100行至200行的日志)
  • 按照关键字找日志的信息:cat -n |grep "debug"
  • 分页查询日志信息:cat -n | grep "debug" |more
  • 筛选过滤之后,输出到一个文件:cat -n |grep "debug" >