Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 浏览器错误:此XML文件似乎没有任何与之关联的样式信息_Java_Spring Boot_Spring Mvc_Oauth 2.0_Web Config - Fatal编程技术网

Java 浏览器错误:此XML文件似乎没有任何与之关联的样式信息

Java 浏览器错误:此XML文件似乎没有任何与之关联的样式信息,java,spring-boot,spring-mvc,oauth-2.0,web-config,Java,Spring Boot,Spring Mvc,Oauth 2.0,Web Config,我正在使用OAuth2授权服务器和资源服务器。对于web配置,我正在扩展webmvc配置支持类,并在我的WebConfig类上使用@EnableWebMvc注释。代码运行正常,但每当我尝试点击URL时,浏览器上就会出现这样一条错误消息:此XML文件似乎没有任何与之相关的样式信息。文档树如下图所示。 访问此资源需要完全身份验证 未经授权 这是我的班级: package com.ab.security.config; 导入org.springframework.context.annotatio

我正在使用OAuth2授权服务器和资源服务器。对于web配置,我正在扩展
webmvc配置支持
类,并在我的
WebConfig
类上使用
@EnableWebMvc
注释。代码运行正常,但每当我尝试点击URL时,浏览器上就会出现这样一条错误消息:此XML文件似乎没有任何与之相关的样式信息。文档树如下图所示。

访问此资源需要完全身份验证 未经授权

这是我的班级:

package com.ab.security.config;
导入org.springframework.context.annotation.Bean;
导入org.springframework.context.annotation.Configuration;
导入org.springframework.context.support.propertysourcesplaceplaceconfigurer;
导入org.springframework.web.context.request.RequestContextListener;
导入org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
导入org.springframework.web.servlet.config.annotation.EnableWebMvc;
导入org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
导入org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
导入org.springframework.web.servlet.config.annotation.WebMVC配置支持;
@配置
公共类WebConfig扩展了WebMvcConfigurationSupport{
@凌驾
public void addViewController(ViewControllerRegistry注册表){
super.addViewController(注册表);
registry.addViewController(“/”).setViewName(“转发:/index”);
registry.addViewController(“/index”);
registry.addViewController(“/secure”);
}
@豆子
public RequestContextListener RequestContextListener(){
返回新的RequestContextListener();
}
}
这是我的OauthConfig.java文件:

package com.ab.security.config;

import org.springframework.boot.autoconfigure.security.oauth2.client.EnableOAuth2Sso;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

@EnableOAuth2Sso
@Configuration
public class OauthConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {

        http.antMatcher("/**").authorizeRequests().antMatchers("/", "/login**").permitAll().anyRequest()
                .authenticated();

    }
}

package com.ab.security.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer;

@EnableResourceServer
@Configuration
public class ResourceServerConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.requestMatchers().antMatchers("/login", "/oauth/authorize").and().authorizeRequests().anyRequest()
                .authenticated().and().formLogin().permitAll();
    }

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {

        auth.parentAuthenticationManager(authenticationManagerBean()).inMemoryAuthentication().withUser("Peter")
                .password("peter").roles("USER");
    }

    @Override
    @Bean
    public AuthenticationManager authenticationManagerBean() throws Exception {
        return super.authenticationManagerBean();
    }

}

下面是AuthorizationServerConfig.java:

package com.ab.security.config;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.oauth2.config.annotation.configurers.ClientDetailsServiceConfigurer;
import org.springframework.security.oauth2.config.annotation.web.configuration.AuthorizationServerConfigurerAdapter;
import org.springframework.security.oauth2.config.annotation.web.configuration.EnableAuthorizationServer;
import org.springframework.security.oauth2.config.annotation.web.configurers.AuthorizationServerEndpointsConfigurer;
import org.springframework.security.oauth2.config.annotation.web.configurers.AuthorizationServerSecurityConfigurer;

@EnableAuthorizationServer
@Configuration
public class AuthorizationServerConfig extends AuthorizationServerConfigurerAdapter {

    @Autowired
    @Qualifier("authenticationManagerBean")
    private AuthenticationManager authenticationManager;

    @Override
    public void configure(AuthorizationServerSecurityConfigurer security) throws Exception {

        security.tokenKeyAccess("permitAll()").checkTokenAccess("isAuthenticated()");
    }

    @Override
    public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
        clients.inMemory().withClient("ClientId").secret("secret").authorizedGrantTypes("authorization_code")
                .scopes("user_info").autoApprove(true);
    }

    @Override
    public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {

        endpoints.authenticationManager(authenticationManager);
    }
    
}

以下是ResourceServerConfig.java文件:

package com.ab.security.config;

import org.springframework.boot.autoconfigure.security.oauth2.client.EnableOAuth2Sso;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

@EnableOAuth2Sso
@Configuration
public class OauthConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {

        http.antMatcher("/**").authorizeRequests().antMatchers("/", "/login**").permitAll().anyRequest()
                .authenticated();

    }
}

package com.ab.security.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer;

@EnableResourceServer
@Configuration
public class ResourceServerConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.requestMatchers().antMatchers("/login", "/oauth/authorize").and().authorizeRequests().anyRequest()
                .authenticated().and().formLogin().permitAll();
    }

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {

        auth.parentAuthenticationManager(authenticationManagerBean()).inMemoryAuthentication().withUser("Peter")
                .password("peter").roles("USER");
    }

    @Override
    @Bean
    public AuthenticationManager authenticationManagerBean() throws Exception {
        return super.authenticationManagerBean();
    }

}


您正在使用Spring Boot,那么为什么要使用此配置?删除
@EnableWebMvc
删除所有被覆盖的方法,但删除
addViewControllers
(其余的都已经由Spring Boot完成)。如果这还不能解决问题,那么错误就在您的安全设置中,而不是在您的web设置中。@M.Deinum,我已经按照您的建议做了,但现在我得到了一个错误:创建名为“scopedTarget.OAuth2Client Context”的bean时出错:作用域“会话”对于当前线程不是活动的;然后重新添加
RequestContextListener
bean。@M.Deinum如果我重新添加
RequestContextListener
,那么主要问题仍然存在,我已经发布了这个问题。我正在关注这个问题,但刚刚将启动版本更新为
2.3.3版本