小编Shi*_*iva的帖子

为什么IE 11浏览器随机地为jQuery AJAX POST请求提供Content-Length = 0?

我正在开发基于Spring MVC的webapp.

下面是我的环境信息: - , Java 1.8.0_162 (64 bit),,Spring 4.3.1 为SSO,和.Apache Tomcat 8.0.49Waffle-1.8.3jquery-1.11.3Google Charts API

将以下JavaScript代码放在一个常见的JS文件中: - $.ajaxSetup({ cache: false });

POST对服务器的jQuery AJAX 请求在MozillaChrome浏览器中完美运行.但是当谈到IE 11浏览器时,jQuery AJAX POST请求只有在第一次加载窗口时才能正常工作.然后随机失败并且一旦失败,后续请求也会失败.

以下是IE 11浏览器的" 网络"选项卡的快照: -

  1. 成功的 ajax POST请求: 在此输入图像描述

  2. 失败的 ajax POST请求: 在此输入图像描述

这两个请求在其各自的请求主体中都有JSON对象.但是,成功请求的Content-Length属性值为416(字符串化JSON对象的总字符数),失败的属性值为0.对于随机失败的POST请求和后续请求,Content-Length始终为0,但计算的JSON对象始终存在于请求正文中.在每个请求中,JSON对象都是动态构建的.

UPDATE-1(26March2018)以下是文件中Waffle定义的AD身份验证配置web.xml: -

<filter>
    <filter-name>SecurityFilter</filter-name> …
Run Code Online (Sandbox Code Playgroud)

java ajax jquery waffle internet-explorer-11

21
推荐指数
1
解决办法
1088
查看次数

为什么Spring LDAP的LdapTemplate不会返回标题,部门和公司属性?

我使用spring-ldap-core-2.3.1.RELEASE.jarJDK 1.8Tomcat 8.0通过访问AD信息LdapTemplate.属性如title,department&company不被返回的ldapTemplate.search(..,.,..)方法.

我正在使用以下代码行进行搜索: -

LdapQuery ldapQuery = LdapQueryBuilder.query()
                                       .where("objectclass").is("user")
                                       .and("objectcategory").is("person")
                                       .and("cn").like(strWildcardText+"*");
ldapTemplate.search(ldapQuery, new ADUserAttributesMapper());
Run Code Online (Sandbox Code Playgroud)

以下是ADUserAttributesMapper班级: -

public class ADUserAttributesMapper implements AttributesMapper<ADUserBean> {
    @Override
    public ADUserBean mapFromAttributes(Attributes attributes) throws NamingException {
        if(attributes==null) {
            return null;
        }

        adUserBean.setName((attributes.get("name")!=null) ? attributes.get("name").get().toString() : null);
        adUserBean.setCommonName((attributes.get("cn")!=null) ? attributes.get("cn").get().toString() : null);
        adUserBean.setDisplayName((attributes.get("displayname")!=null) ? attributes.get("displayname").get().toString() : null);
        adUserBean.setGivenName((attributes.get("givenname")!=null) ? attributes.get("givenname").get().toString() : null); // for FIRST NAME
        adUserBean.setMiddleName((attributes.get("initials")!=null) ? …
Run Code Online (Sandbox Code Playgroud)

jndi spring-mvc active-directory ldap-query spring-ldap

7
推荐指数
2
解决办法
2959
查看次数

为什么SpringLDAP /普通Java AD查询中的accountExpires和userAccountControl过滤器不能按预期工作?

我使用的SpringLDAPAPI基于web应用的弹簧内查询在Windows Server 2012上承载的ActiveDirectory下面是我的环境信息: - , Java 1.8.0_101,&apache-tomcat-8.0.36SpringMVC 4.3.1SpringLDAP 2.3.1

以下AD筛选器查询在基于Windows(基于C++/C#)的查询工具(例如,Lepide AD查询工具)中获取匹配帐户,并且还在eclipse IDE中的LDAP浏览器插件中提取,但是当获取匹配的记录/ AD帐户时在Java(基于JNDI/SpringLDAP API)代码中以及在基于Java的应用程序JXplorer中使用: -

(&(objectclass=user)(objectCategory=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2))(accountExpires>=131554368000000000)(userPrincipalName=cgm@*))
Run Code Online (Sandbox Code Playgroud)

我正在尝试获取一个活动的用户帐户,但是在给定日期并且userPrincipalName以字符串开头的值时尚未过期cgm@.

以下是spring-servlet.xml文件中的ldap配置: -

<util:map id="ldapBaseEnvProps">
        <entry key="java.naming.ldap.attributes.binary" value="objectGUID"/>
</util:map>
<ldap:context-source id="pooledLdapContextSrc" url="ldap://dc.myadserver.com:3268" base="DC=myadserver,DC=com" username="CN=adusername,OU=Mkt-Managers,DC=myadserver,DC=com" password="*****" base-env-props-ref="ldapBaseEnvProps">
    <ldap:pooling max-total="16" max-active="16" max-idle="8" min-idle="0" max-wait="90000" when-exhausted="BLOCK" test-on-borrow="true" test-while-idle="true"/>
</ldap:context-source>
Run Code Online (Sandbox Code Playgroud)

Java/SpringLDAP API是否支持这样的AD过滤器?如果是,需要更改上述AD查询过滤器才能在基于Java的代码中工作(获取匹配的AD帐户)?

java jndi spring-mvc active-directory spring-ldap

7
推荐指数
1
解决办法
376
查看次数

为什么JDK1.8.0u121无法找到kerberos default_tkt_enctypes类型?(KrbException:default_tkt_enctypes不支持默认的etypes)

以下是我的环境详细信息:

KDC服务器:Windows Server 2012

目标机器:Windows 7

JDK版本:Oracle 1.8.0_121(64位)

我在Windows 7机器上运行Java的kinit命令时遇到以下异常:-

C:\Program Files\Java\jdk1.8.0_121\bin>kinit -k -t "C:\Program Files\Apache Software Foundation\Tomcat 8.0\conf\tomcat_ad.keytab" HTTP/dev26.devdevelopment.com@DEVDEVELOPMENT.COM
Exception: krb_error 0 no supported default etypes for default_tkt_enctypes No error
KrbException: no supported default etypes for default_tkt_enctypes
        at sun.security.krb5.Config.defaultEtype(Config.java:844)
        at sun.security.krb5.internal.crypto.EType.getDefaults(EType.java:249)
        at sun.security.krb5.internal.crypto.EType.getDefaults(EType.java:262)
        at sun.security.krb5.KrbAsReqBuilder.build(KrbAsReqBuilder.java:261)
        at sun.security.krb5.KrbAsReqBuilder.send(KrbAsReqBuilder.java:315)
        at sun.security.krb5.KrbAsReqBuilder.action(KrbAsReqBuilder.java:361)
        at sun.security.krb5.internal.tools.Kinit.<init>(Kinit.java:219)
        at sun.security.krb5.internal.tools.Kinit.main(Kinit.java:113)
Run Code Online (Sandbox Code Playgroud)

调试模式下的命令输出:

C:\Program Files\Java\jdk1.8.0_121\bin>kinit -J-Dsun.security.krb5.debug=true -k -t "C:\Program Files\Apache Software Foundation\Tomcat 8.0\conf\tomca
t_ad.keytab" HTTP/dev26.devdevelopment.com@DEVDEVELOPMENT.COM
>>>KinitOptions cache name is C:\Users\devtcadmin\krb5cc_devtcadmin
Principal is HTTP/dev26.devdevelopment.com@DEVDEVELOPMENT.COM …
Run Code Online (Sandbox Code Playgroud)

java kerberos active-directory windows-7-x64 windows-server-2012

4
推荐指数
1
解决办法
9532
查看次数