Hiper统一登录平台常见问题

1. 账号被锁定相关问

admin账号被锁定

通过修改用户表status字段来解除锁定:admin账号的status 从1改为0
或直接通过rpc接口重置用户状态:
curl -X POST "http://10.10.32.34:9015/rpc/user/updateUserStatus" -H "accept: */*" -H "Content-Type: application/json" -d "{ \"status\": 0, \"userId\": 1}"
也可通过swagger-ui来操作,参考地址:http://10.10.32.34:9015/swagger-ui.html

普通账号被锁定

可以和admin账号类似的方式改,不过推荐直接通过控制台->用户管理,找到对应的账号,通过“恢复”解除锁定。

关闭账号锁定功能

通过cas 控制台->配置管理->登陆策略配置:
调整“尝试失败锁定账号” 开启和关闭这个功能。

2. 用户登陆失败次数过无法登录

默认10分钟超过5次,再次登陆就会报这个错误,等10分钟让reidskye过期,或者删除“cas.login.attempts:${userName}” 这个redis key。
PS:
例子:清理admin用户的登录尝试
docker exec -it cas-redis redis-cli 127.0.0.1:6379> del cas.login.attempts:admin (integer) 0
只能通过访问cas连接的redis删除,目前没有对外的API接口。

调整用户登陆失败次数过多参数

CAS 导航栏, 控制台->配置管理-》登录策略配置。
开启登录限制:是否开启。
最大尝试次数:默认5次,可以按需调大。
尝试时间:多长时间内限制登录次数,默认是10分钟。这些配置,保存即可生效。
也可以直接改 "cas-login-configuration.properties" 这个cas的nacos配置:
h-visions.cas.login.password.loginAttempts.enable=true h-visions.cas.login.password.loginAttempts.maxTime=5 h-visions.cas.login.password.loginAttempts.inTime=10
分别对应上述的三个配置。

3. 跳转到APP之后又跳回CAS是什么原因?

获取错误信息方法: 
  1. APP图标处右键 拷贝链接地址
2. 浏览器开发工具栏,选中“保留日志(preserve log)”, 然后在地址栏粘贴刚才copy的链接地址,敲回车,然后找到出错请求。
3.  看具体的出错原因
把出错的请求复制为Curl,找一台linux机器执行,或者用postman构造一个类似的http请求。以curl为例:
(base) ➜ ~ curl 'http://10.10.32.200:9030/api/auth/user/getUserByToken/eyJ0IjoiZTIwN2NhOTNlMWU5NDdmMmI5NGRmM2QxMThkNGJhZGIiLCJ1IjoiMSJ9?platform=11&timestamp=1705541337902' \ -H 'Accept: application/json, text/plain, */*' \ -H 'Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,zh-TW;q=0.7,vi;q=0.6' \ -H 'Cache-Control: no-cache' \ -H 'Connection: keep-alive' \ -H 'Pragma: no-cache' \ -H 'Referer: http://10.10.32.200:9030/?castoken=eyJ0IjoiZTIwN2NhOTNlMWU5NDdmMmI5NGRmM2QxMThkNGJhZGIiLCJ1IjoiMSJ9' \ -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36' \ -H 'token: eyJ0IjoiZTIwN2NhOTNlMWU5NDdmMmI5NGRmM2QxMThkNGJhZGIiLCJ1IjoiMSJ9' \ --compressed \ --insecure {"data":null,"code":10000,"message":"登录过期,需要重新登录!"}%
看到最终的错误是“登录过期,需要重新登录” , 根据错误信息做进一步排查。
注意:如果是CAS单点登录相关错误,错误信息中增加ErrSource字段,值为CAS_SSO,可以根据这个标识判断是否是CAS单点登录错误还是其他地方跑出的错误。

4. 接入CAS单点登录之后,无法通过SSOUtil获取用户

 CAS SSO util获取当前用户是从http header获取的,放到header这个“动作”是在gateway执行的。
  • 检查这个接口是否讲过了gateway
  • 确认是否被sso.exclusions配置排除。

5.如何把CAS注册到应用的naocs

在cas的配置文件中增加如下配置,然后重启cas生效,可以按指定ip把cas注册到对应nacos的namespace。
h-visions: sso: discoveryNacos: - server-addr: 10.10.32.32:8848 namespace: dev ip: 10.10.32.34 port: 9015 - server-addr: 192.168.13.14:8849 namespace: dev ip: 192.168.10.13 port: 9015 - server-addr: 192.168.13.14:8849 namespace: test ip: 192.168.10.13 port: 9015

6.DEMO 中各应用接入CAS的方式

  • 新的方式
  1. 只有IOT做了完整接入, IOT 2.0.3之后会带CAS一块部署。
  2. 如果客户有单点登录需求,如果有IOT就用IOT的CAS作为单点登录的入口,降低部署成本。
  3. IOT除了登录采用CAS,授权管理也是在CAS管理的
  • 部分兼容老的方式:MES、设备、能源应用使用的是这种方式.
  1. 需要在CAS中增加APP,然后在应用中开启开启CAS登陆,配置CAS后端及前端地址; 这几个应用的授权管理没有采用CAS,是在应用内部维护的。
  2. CAS中增加的APP配置直接参考demo
  3. MES开启单点登录
注册中心登录页面地址即前端地址,一般为 http://${CAS前端HOST}:8060
注册中心网管地址即CAS后端地址,一般为http://${CAS后端HOST}:9015
配置完之后,重启下framework,应该就可以生效。
  • 能源开启单点登录
后端的配置在naocos上,前端和对应应用的开发确认下。
2025-08-25
0