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;
    }

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一百减一是零

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值