<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic OPTIONS Request returning 401 in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/options-request-returning-401/m-p/208563#M161693</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm using 5.17.0 and after we upgraded from 5.15.1, we are seeing issues with CORS.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Basically our front-end hits activiti-rest via javascript (temporary, we will have our own service later) which means we need to have CORS set up. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;However, I think the OPTIONS pre-flight request browsers make is getting a 401 because those pre-flight requests don't send in the authorization header.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;My question is, &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;1. How do I disable that check on OPTIONS?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;or&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;2. How do I disable Authorization check all together?. Our services are internal only and behind strict firewall so we don't have to worry about external security issues. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 24 Feb 2015 08:24:13 GMT</pubDate>
    <dc:creator>jhahn</dc:creator>
    <dc:date>2015-02-24T08:24:13Z</dc:date>
    <item>
      <title>OPTIONS Request returning 401</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/options-request-returning-401/m-p/208563#M161693</link>
      <description>HiI'm using 5.17.0 and after we upgraded from 5.15.1, we are seeing issues with CORS.Basically our front-end hits activiti-rest via javascript (temporary, we will have our own service later) which means we need to have CORS set up. However, I think the OPTIONS pre-flight request browsers make is get</description>
      <pubDate>Tue, 24 Feb 2015 08:24:13 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/options-request-returning-401/m-p/208563#M161693</guid>
      <dc:creator>jhahn</dc:creator>
      <dc:date>2015-02-24T08:24:13Z</dc:date>
    </item>
    <item>
      <title>Re: OPTIONS Request returning 401</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/options-request-returning-401/m-p/208564#M161694</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Actually, probably prefer the option 1… ignore option 2 haha&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 24 Feb 2015 08:36:51 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/options-request-returning-401/m-p/208564#M161694</guid>
      <dc:creator>jhahn</dc:creator>
      <dc:date>2015-02-24T08:36:51Z</dc:date>
    </item>
    <item>
      <title>Re: OPTIONS Request returning 401</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/options-request-returning-401/m-p/208565#M161695</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I can confirm this problem. With 5.16-Snapshot (without Spring Security), CORS worked very well with the build in Tomcat CORS-Filter. Since we upgraded to 5.17, the OPTIONS-Request fails with 401 because custom Authorization headers are not included in the request although they are configured as "allowed-headers" and "exposed-headers" in the Tomcat-CORS Filter&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Is there any idea how to solve this?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 24 Feb 2015 11:18:36 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/options-request-returning-401/m-p/208565#M161695</guid>
      <dc:creator>b_schnarr</dc:creator>
      <dc:date>2015-02-24T11:18:36Z</dc:date>
    </item>
    <item>
      <title>Re: OPTIONS Request returning 401</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/options-request-returning-401/m-p/208566#M161696</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;CORS can be configured for Spring Security so you would need to change the SecurityConfiguration of the REST web app. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Best regards,&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 24 Feb 2015 19:28:39 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/options-request-returning-401/m-p/208566#M161696</guid>
      <dc:creator>trademak</dc:creator>
      <dc:date>2015-02-24T19:28:39Z</dc:date>
    </item>
    <item>
      <title>Re: OPTIONS Request returning 401</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/options-request-returning-401/m-p/208567#M161697</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I googled a lot and even the official Spring documentation says that a CORS-Filter is enough : &lt;/SPAN&gt;&lt;A href="https://spring.io/guides/gs/rest-service-cors/" rel="nofollow noopener noreferrer"&gt;https://spring.io/guides/gs/rest-service-cors/&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;And this filter is provided by the Tomcat. Therefore, which configuration in SpringConfiguration do you mean?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Best regards&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Ben&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 24 Feb 2015 20:06:25 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/options-request-returning-401/m-p/208567#M161697</guid>
      <dc:creator>b_schnarr</dc:creator>
      <dc:date>2015-02-24T20:06:25Z</dc:date>
    </item>
    <item>
      <title>Re: OPTIONS Request returning 401</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/options-request-returning-401/m-p/208568#M161698</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi Ben,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for the link. Are you able to invoke a CORS GET request on for example the GET process definitions REST service?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Do you see the Tomcat CORS filter headers being added to the response?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Best regards,&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 24 Feb 2015 20:16:38 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/options-request-returning-401/m-p/208568#M161698</guid>
      <dc:creator>trademak</dc:creator>
      <dc:date>2015-02-24T20:16:38Z</dc:date>
    </item>
    <item>
      <title>Re: OPTIONS Request returning 401</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/options-request-returning-401/m-p/208569#M161699</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi Tijs,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I am not able to invoke a GET request because the OPTIONS-Request sent before already fails with 401. The CORS headers are not attached. Therefore, I wrote my own CORS-Filter which adds the needed Allow-Origin-Header and other CORS headers, but I still get a 401 during the OPTIONS request. I think this issue is also important for the guys programming the AngularJS Frontend. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;To summarize: CORS worked with the configured Tomcat CORS Filter in 5.16. That is why I know that my CORS configuration works in general. But no idea why the OPTIONS-Request fails with Spring Security.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Do you have an idea?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 24 Feb 2015 20:24:33 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/options-request-returning-401/m-p/208569#M161699</guid>
      <dc:creator>b_schnarr</dc:creator>
      <dc:date>2015-02-24T20:24:33Z</dc:date>
    </item>
    <item>
      <title>Re: OPTIONS Request returning 401</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/options-request-returning-401/m-p/208570#M161700</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Think this might be what we're looking for. Will try it out in few hours&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="http://stackoverflow.com/questions/21696592/disable-spring-security-for-options-http-method" rel="nofollow noopener noreferrer"&gt;http://stackoverflow.com/questions/21696592/disable-spring-security-for-options-http-method&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;@Override&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;protected void configure(HttpSecurity http) throws Exception&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; http&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .csrf().disable()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .authorizeRequests()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .antMatchers(HttpMethod.OPTIONS,"/path/to/allow").permitAll()//allow CORS option calls&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .antMatchers("/resources/**").permitAll()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .anyRequest().authenticated()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .and()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .formLogin()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .and()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .httpBasic();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 24 Feb 2015 20:38:11 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/options-request-returning-401/m-p/208570#M161700</guid>
      <dc:creator>jhahn</dc:creator>
      <dc:date>2015-02-24T20:38:11Z</dc:date>
    </item>
    <item>
      <title>Re: OPTIONS Request returning 401</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/options-request-returning-401/m-p/208571#M161701</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;So adding the &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;.antMatchers(HttpMethod.OPTIONS,"/path/to/allow").permitAll()//allow CORS option calls&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;line did solve the 401 response. I'm still have trouble with CORS though, it still somehow thinks it's invalid…&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I added the following but it's still not working.. argh…&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;public class CorsFilter extends OncePerRequestFilter {&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected void doFilterInternal(HttpServletRequest request,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HttpServletResponse response, FilterChain filterChain)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throws ServletException, IOException {&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; response.setHeader("Access-Control-Allow-Origin", "*");&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (request.getHeader("Access-Control-Request-Method") != null&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;&amp;amp; "OPTIONS".equals(request.getMethod())) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // CORS "pre-flight" request&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; response.setHeader("Access-Control-Allow-Credentials",&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "true");&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; response.setHeader("Access-Control-Allow-Methods",&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "GET, POST, PUT, DELETE");&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; response.setHeader("Access-Control-Allow-Headers",&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "X-Requested-With,Origin,Content-Type, Accept, Authorization");&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; response.setHeader("Access-Control-Max-Age",&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "100");&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; filterChain.doFilter(request, response);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 25 Feb 2015 07:01:21 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/options-request-returning-401/m-p/208571#M161701</guid>
      <dc:creator>jhahn</dc:creator>
      <dc:date>2015-02-25T07:01:21Z</dc:date>
    </item>
    <item>
      <title>Re: OPTIONS Request returning 401</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/options-request-returning-401/m-p/208572#M161702</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;jhahn, for me, adding &amp;lt;code&amp;gt;.antMatchers(HttpMethod.OPTIONS,"/path/to/allow").permitAll()&amp;lt;/code&amp;gt; still leads to a 404 in the Options-Request for me. Which /path/to/allow did you use?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;How did you configure your own CORS-Filter so that it gets triggered before all other filters in the chain?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 25 Feb 2015 08:07:32 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/options-request-returning-401/m-p/208572#M161702</guid>
      <dc:creator>b_schnarr</dc:creator>
      <dc:date>2015-02-25T08:07:32Z</dc:date>
    </item>
    <item>
      <title>Re: OPTIONS Request returning 401</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/options-request-returning-401/m-p/208573#M161703</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I added &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;.antMatchers(HttpMethod.OPTIONS,"**").permitAll()&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;to be exact. ** will let any path be permitted.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I created a CorsFilter class and then updated my SecurityConfiguration class to be (look at 2nd class)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; http&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; .addFilterBefore(new CorsFilter(), ChannelProcessingFilter.class)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .authenticationProvider(authenticationProvider())&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .csrf().disable()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .authorizeRequests()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .antMatchers(HttpMethod.OPTIONS, "**").permitAll()//allow CORS option calls&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .anyRequest().authenticated()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .and()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .httpBasic();&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 25 Feb 2015 18:31:21 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/options-request-returning-401/m-p/208573#M161703</guid>
      <dc:creator>jhahn</dc:creator>
      <dc:date>2015-02-25T18:31:21Z</dc:date>
    </item>
    <item>
      <title>Re: OPTIONS Request returning 401</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/options-request-returning-401/m-p/208574#M161704</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thanks. I will try this tomorrow. You wrote that it is still not working. What error do you get?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 25 Feb 2015 18:59:08 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/options-request-returning-401/m-p/208574#M161704</guid>
      <dc:creator>b_schnarr</dc:creator>
      <dc:date>2015-02-25T18:59:08Z</dc:date>
    </item>
    <item>
      <title>Re: OPTIONS Request returning 401</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/options-request-returning-401/m-p/208575#M161705</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The OPTION request would get a 200 but the browser would not make a subsequent request. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;But I tested on a different server last night with the same configuration and it worked so it might just be a different issue for me.&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 25 Feb 2015 19:03:45 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/options-request-returning-401/m-p/208575#M161705</guid>
      <dc:creator>jhahn</dc:creator>
      <dc:date>2015-02-25T19:03:45Z</dc:date>
    </item>
    <item>
      <title>Re: OPTIONS Request returning 401</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/options-request-returning-401/m-p/208576#M161706</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Yeah, confirmed that it's working now. Yay&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 25 Feb 2015 21:06:38 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/options-request-returning-401/m-p/208576#M161706</guid>
      <dc:creator>jhahn</dc:creator>
      <dc:date>2015-02-25T21:06:38Z</dc:date>
    </item>
    <item>
      <title>Re: OPTIONS Request returning 401</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/options-request-returning-401/m-p/208577#M161707</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I can confirm that your solution is working. Thanks a lot for this hint!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 25 Feb 2015 21:58:37 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/options-request-returning-401/m-p/208577#M161707</guid>
      <dc:creator>b_schnarr</dc:creator>
      <dc:date>2015-02-25T21:58:37Z</dc:date>
    </item>
    <item>
      <title>Re: OPTIONS Request returning 401</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/options-request-returning-401/m-p/208578#M161708</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hello guys, I am having a problem that might be related to this. I am not getting a 401 error but a 200 response for the OPTIONS request but it seems spring is not letting the actual GET request pass through.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This is my scenario:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I am exposing an API running in tomcat over ssl in sub.domain.com. The API was developed using spring.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I am hitting the API from a client app in domain.com.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have enabled CORS in tomcat with the following filter:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;filter-class&amp;gt;org.apache.catalina.filters.CorsFilter&amp;lt;/filter-class&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;init-param&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;param-name&amp;gt;cors.allowed.origins&amp;lt;/param-name&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;param-value&amp;gt;*&amp;lt;/param-value&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/init-param&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;init-param&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;param-name&amp;gt;cors.allowed.methods&amp;lt;/param-name&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;param-value&amp;gt;GET,POST,HEAD,OPTIONS,PUT&amp;lt;/param-value&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/init-param&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;init-param&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;param-name&amp;gt;cors.allowed.headers&amp;lt;/param-name&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;param-value&amp;gt;ip,sessiontoken,Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers,Last-Modified,Authorization&amp;lt;/param-v$&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/init-param&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;init-param&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;param-name&amp;gt;cors.exposed.headers&amp;lt;/param-name&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;param-value&amp;gt;Access-Control-Allow-Origin,Access-Control-Allow-Credentials&amp;lt;/param-value&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/init-param&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;init-param&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;param-name&amp;gt;cors.support.credentials&amp;lt;/param-name&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;param-value&amp;gt;true&amp;lt;/param-value&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/init-param&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;init-param&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;param-name&amp;gt;cors.preflight.maxage&amp;lt;/param-name&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;param-value&amp;gt;60&amp;lt;/param-value&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/init-param&amp;gt;&amp;lt;/filter&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;filter-mapping&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;filter-name&amp;gt;CorsFilter&amp;lt;/filter-name&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;url-pattern&amp;gt;/*&amp;lt;/url-pattern&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/filter-mapping&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;—-&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In cors.allowed.headers you can see ip and sessiontoken. These are the custom headers I am using.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In the client side, this is the call I am using:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;$.ajax({&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; type: "GET",&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataType: "json",&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; url: server + apiEnpoint,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; async: false,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; headers: {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "sessionToken": "XXXXXXXXXXXXXX"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; },&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;——&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This is the second request to the API. The first one which is a login request (username, password) gets through without problem. Then I call an authenticated method to retrieve user data (the previous JS).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;As you can see in the image below, the server response to the preflight request is 200. But the required headers to continue with the actual request are not sent over.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://i.stack.imgur.com/kAVDz.png" rel="nofollow noopener noreferrer"&gt;http://i.stack.imgur.com/kAVDz.png&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;in tomcat when priting the headers sent with that request:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;ERROR: org.springframework.security.authentication.AuthenticationManager - org.apache.tomcat.util.http.ValuesEnumerator@65beb190&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ERROR: org.springframework.security.authentication.AuthenticationManager - host:sub.domain.com&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ERROR: org.springframework.security.authentication.AuthenticationManager - user-agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:46.0) Gecko/20100101 Firefox/46.0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ERROR: org.springframework.security.authentication.AuthenticationManager - accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ERROR: org.springframework.security.authentication.AuthenticationManager - accept-language:en-US,en;q=0.5&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ERROR: org.springframework.security.authentication.AuthenticationManager - accept-encoding:gzip, deflate, br&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ERROR: org.springframework.security.authentication.AuthenticationManager - access-control-request-method:GET&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ERROR: org.springframework.security.authentication.AuthenticationManager - access-control-request-headers:sessiontoken&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ERROR: org.springframework.security.authentication.AuthenticationManager - origin:&lt;/SPAN&gt;&lt;A href="https://citywallet.net" rel="nofollow noopener noreferrer"&gt;https://citywallet.net&lt;/A&gt;&lt;BR /&gt;&lt;SPAN&gt;ERROR: org.springframework.security.authentication.AuthenticationManager - connection:keep-alive&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;DEBUG: org.springframework.security.access.vote.AffirmativeBased - Voter: org.springframework.security.web.access.expression.WebExpressionVoter@1de0bff9, returned: -1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;DEBUG: org.springframework.security.web.access.ExceptionTranslationFilter - Access is denied (user is anonymous); redirecting to authentication entry point&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;org.springframework.security.access.AccessDeniedException: Access is denied&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.springframework.security.access.vote.AffirmativeBased.decide(AffirmativeBased.java:83)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have follow docs here: &lt;/SPAN&gt;&lt;A href="http://docs.spring.io/autorepo/docs/spring/4.2.x/spring-framework-reference/html/cors.html" rel="nofollow noopener noreferrer"&gt;http://docs.spring.io/autorepo/docs/spring/4.2.x/spring-framework-reference/html/cors.html&lt;/A&gt;&lt;SPAN&gt; and XMLHttpRequest cors &lt;/SPAN&gt;&lt;A href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS" rel="nofollow noopener noreferrer"&gt;https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;But still not success.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Can you guide me in the right direction? Thanks a lot!!!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 06 Jun 2016 22:32:11 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/options-request-returning-401/m-p/208578#M161708</guid>
      <dc:creator>hernangarcia</dc:creator>
      <dc:date>2016-06-06T22:32:11Z</dc:date>
    </item>
    <item>
      <title>Re: OPTIONS Request returning 401</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/options-request-returning-401/m-p/208579#M161709</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hello Jhahn, I am experiencing this very same issue. Can you please see my explanation in the link below and let me know how you fixed it?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="https://forums.activiti.org/content/options-request-returning-401#comment-35417" rel="nofollow noopener noreferrer"&gt;https://forums.activiti.org/content/options-request-returning-401#comment-35417&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks a lot!!!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 07 Jun 2016 01:31:36 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/options-request-returning-401/m-p/208579#M161709</guid>
      <dc:creator>hernangarcia</dc:creator>
      <dc:date>2016-06-07T01:31:36Z</dc:date>
    </item>
  </channel>
</rss>

