配置文件路径:nacos/conf/application.properties
一、客户端安全
其中nacos.core.auth.enabled=true是为了让客户端(比如java、python等访问注册到nacos时,需要授权)
spring.cloud.nacos.username=nacos
这样其他代码端注册nacos就需要用户名授权了,比如spring cloud的java代码需要如下授权,注意是nacos的用户名+密码
spring.cloud.nacos.username=nacos
spring.cloud.nacos.password=heloWXOlsx123&
二、http接口访问nacos的安全
为了http接口方式访问nacos服务(无需在界面http://****:8848/nacos/#/login登录,即可访问nacos的数据,比如服务列表,命名空间有哪些等)
nacos.core.auth.server.identity.key=enwing
nacos.core.auth.server.identity.value=heElox123
curl请求例子如下(特别注意 -H 'enwing: heElox123' 请求头)
curl 'http://****:8848/nacos/v1/ns/catalog/services?hasIpCount=true&withInstances=false&pageNo=1&pageSize=10&serviceNameParam=&groupNameParam=&namespaceId=' \
-H 'enwing: heElox123' \
-H 'Accept: application/json, text/javascript, */*; q=0.01' \
-H 'Accept-Language: en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7' \
-H 'Connection: keep-alive' \
-H 'Referer: http://***:8848/nacos/' \
-H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36' \
-H 'X-Requested-With: XMLHttpRequest' \
返回结果如下
{"serviceList":[{"name":"enWingManager","groupName":"DEFAULT_GROUP","clusterCount":1,"ipCount":1,"healthyInstanceCount":1,"triggerFlag":"false"}],"count":1}
如果没有这个请求头,则会返回403
{"timestamp":"2024-09-26T12:09:30.582+08:00","status":403,"error":"Forbidden","message":"unknown user!","path":"/nacos/v1/ns/catalog/services"}