code: 	public OpenIDLoginConfigurer<HttpSecurity> openidLogin() throws Exception {
  		return getOrApply(new OpenIDLoginConfigurer<HttpSecurity>());
  	}
  
  	/**
  	 * Adds the Security headers to the response. This is activated by default when using
  	 * {@link WebSecurityConfigurerAdapter}'s default constructor. Accepting the
  	 * default provided by {@link WebSecurityConfigurerAdapter} or only invoking
  	 * {@link #headers()} without invoking additional methods on it, is the equivalent of:
  	 *
  	 * <pre>
  	 * &#064;Configuration
  	 * &#064;EnableWebSecurity
  	 * public class CsrfSecurityConfig extends WebSecurityConfigurerAdapter {
  	 *
  	 * 	&#064;Override
  	 *     protected void configure(HttpSecurity http) throws Exception {
  	 *         http
  	 *             .headers()
  	 *                 .contentTypeOptions()
  	 *                 .and()
  	 *                 .xssProtection()
  	 *                 .and()
  	 *                 .cacheControl()
  	 *                 .and()
  	 *                 .httpStrictTransportSecurity()
  	 *                 .and()
  	 *                 .frameOptions()
  	 *                 .and()
  	 *             ...;
  	 *     }
  	 * }
  	 * </pre>
  	 *
  	 * You can disable the headers using the following:
  	 *
  	 * <pre>
  	 * &#064;Configuration
  	 * &#064;EnableWebSecurity
  	 * public class CsrfSecurityConfig extends WebSecurityConfigurerAdapter {
  	 *
  	 * 	&#064;Override
  	 *     protected void configure(HttpSecurity http) throws Exception {
  	 *         http
  	 *             .headers().disable()
  	 *             ...;
  	 *     }
  	 * }
  	 * </pre>
  	 *
  	 * You can enable only a few of the headers by first invoking
  	 * {@link HeadersConfigurer#defaultsDisabled()}
  	 * and then invoking the appropriate methods on the {@link #headers()} result.
  	 * For example, the following will enable {@link HeadersConfigurer#cacheControl()} and
  	 * {@link HeadersConfigurer#frameOptions()} only.
  	 *
  	 * <pre>
  	 * &#064;Configuration
  	 * &#064;EnableWebSecurity
  	 * public class CsrfSecurityConfig extends WebSecurityConfigurerAdapter {
  	 *
  	 * 	&#064;Override
  	 *     protected void configure(HttpSecurity http) throws Exception {
  	 *         http
  	 *             .headers()
  	 *                  .defaultsDisabled()
  	 *                  .cacheControl()
  	 *                  .and()
  	 *                  .frameOptions()
  	 *                  .and()
  	 *             ...;
  	 *     }
  	 * }
  	 * </pre>
  	 *
  	 * You can also choose to keep the defaults but explicitly disable a subset of headers.
  	 * For example, the following will enable all the default headers except
  	 * {@link HeadersConfigurer#frameOptions()}.
  	 *
  	 * <pre>
  	 * &#064;Configuration
  	 * &#064;EnableWebSecurity
  	 * public class CsrfSecurityConfig extends WebSecurityConfigurerAdapter {
  	 *
  	 * 	&#064;Override
  	 *     protected void configure(HttpSecurity http) throws Exception {
  	 *         http
  	 *             .headers()
  	 *                  .frameOptions()
  	 *                  	.disable()
  	 *                  .and()
  	 *             ...;
  	 *     }
  	 * }
  	 * </pre>
  	 *
  	 * @return
  	 * @throws Exception
  	 * @see HeadersConfigurer
  	 */
  