java域控连接AD遇到的问题

简介: java域控连接AD遇到的问题

项目是前后端分离的        springboot + vue

浏览器访问        可以直接拿到对应的域账户。

放在项目里面就直接报了这个错误,说是鉴权失败。401

对应的controller里面加了注解@CrossOrigin

但是没有效果的。感觉不是跨域的问题。因为只有前端访问这个接口的时候才会提示这个错误。

Access to XMLHttpRequest at 'http://localhost:18080/app/getExUserName' from origin 'http://localhost:8002' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

在对应的filter里面加载配置。放在不需要登录的地方,浏览器直接访问就可以获取到域账户,但是使用前端访问连接,或者工具访问都不可以。我检查了所有的filter  其实并不是冲突,也没有冲突。因为我们是用的sso做的单点,跟这个应该是有关系的。然后我就吧!这个请求的URL换成了登录时的URL然后就可以获取到域账号了(域账号放到redis),而且不影响项目正常流程。

"/sso/login", "/sys/login"

获取到的域账号,放到全局。做一个访问前询问是否有这个账号,如果没有取到就是放到redis的超时了。重新登录即可。

这里必须要做到精准定位到域账号。也就是请求时每次都要更新全局。(set其实这个可以优化)不然会出现取错账号的问题。

问题解决了  就很开心。

@Value("${jcifs.smb.client.domain}")

private String domain;

@Value("${jcifs.http.domainController}")

private String domainController;

@Value("${jcifs.smb.client.username}")

private String username;

@Value("${jcifs.smb.client.password}")

private String password;

@Bean

   public FilterRegistrationBean jcifsFilterRegistration() {

       FilterRegistrationBean<JcifsFilter> registration = new FilterRegistrationBean<>();

       registration.setFilter(new JcifsFilter(domain, domainController, username, password));

       //配置需要获取域控的请求路径也可以直接配置 '/*'(代表全部都会进行域控加载)

//        registration.addUrlPatterns("/*");//过滤所有请求

//        registration.addUrlPatterns("/app/getExUserName");//请求的URL

registration.addUrlPatterns("/sql_implement", "/sso/login", "/sys/login");

       registration.setName("NtlmHttpFilter");//第一个

       registration.setOrder(1);//级别

       return registration;

   }

启动就可以正常获取域账户


相关文章
|
29天前
|
存储 SQL 分布式计算
Java连接阿里云MaxCompute例
要使用Java连接阿里云MaxCompute数据库,首先需在项目中添加MaxCompute JDBC驱动依赖,推荐通过Maven管理。避免在代码中直接写入AccessKey,应使用环境变量或配置文件安全存储。示例代码展示了如何注册驱动、建立连接及执行SQL查询。建议使用RAM用户提升安全性,并根据需要配置时区和公网访问权限。具体步骤和注意事项请参考阿里云官方文档。
|
2月前
|
SQL Java 数据库连接
Java开发者必知:JDBC连接数据库的“三大法宝”
Java开发者必知:JDBC连接数据库的“三大法宝”
19 7
|
2月前
|
安全 Java 关系型数据库
Java连接Mysql SSL初始化失败
Java连接Mysql SSL初始化失败
|
2月前
|
缓存 NoSQL 网络协议
【Azure Redis 缓存】Redisson 连接 Azure Redis出现间歇性 java.net.UnknownHostException 异常
【Azure Redis 缓存】Redisson 连接 Azure Redis出现间歇性 java.net.UnknownHostException 异常
|
2月前
|
SQL Java 数据库连接
java连接数据库加载驱动到java项目
该博客文章介绍了如何在Java项目中通过代码加载数据库驱动并连接SQL Server数据库,包括具体的加载驱动和建立数据库连接的步骤,以及如何将驱动包添加到Java项目的构建路径中。
|
2月前
|
Java API 开发者
|
2月前
|
SQL 存储 Java
完整java开发中JDBC连接数据库代码和步骤
该博客文章详细介绍了使用JDBC连接数据库的完整步骤,包括加载JDBC驱动、提供连接URL、创建数据库连接、执行SQL语句、处理结果以及关闭JDBC对象的过程,并提供了相应的示例代码。
|
2月前
|
存储 Java 开发工具
【Azure 存储服务】Java Azure Storage SDK V12使用Endpoint连接Blob Service遇见 The Azure Storage endpoint url is malformed
【Azure 存储服务】Java Azure Storage SDK V12使用Endpoint连接Blob Service遇见 The Azure Storage endpoint url is malformed
|
2月前
|
Java 网络安全 开发工具
新手入门Java。如何下载Eclipse、写出最基本的“Hello word”以及如何连接github并且上传项目。
新手入门Java。如何下载Eclipse、写出最基本的“Hello word”以及如何连接github并且上传项目。
42 0
|
2月前
|
SQL 网络协议 Java
JAVA SQLServerException: 通过端口 1433 连接到主机 127.0.0.1 的 TCP/IP 连接失败
JAVA SQLServerException: 通过端口 1433 连接到主机 127.0.0.1 的 TCP/IP 连接失败
36 0
下一篇
无影云桌面