我已將一個 MVC MitreID Spring Web 應用程序剪切并粘貼到一個基本的引導 Web 應用程序中。當我嘗試運行它時,我得到:A component required a bean named 'namedAdmins' that could not be found代碼是:import org.mitre.openid.connect.client.OIDCAuthenticationFilter;import org.mitre.openid.connect.client.SubjectIssuerGrantedAuthority;@RestControllerpublic class HomeController {private static final Logger logger = LoggerFactory.getLogger(HomeController.class);@Autowiredprivate OIDCAuthenticationFilter filter;@Resource(name = "namedAdmins")private Set<SubjectIssuerGrantedAuthority> admins;@RequestMapping(value = "/", method = RequestMethod.GET)這只是我將@controller 更改為@restcontroller 的Spring 代碼。這是在 servlet-context.xml 中:<bean id="openIdConnectAuthenticationProvider" class="org.mitre.openid.connect.client.OIDCAuthenticationProvider"> <property name="authoritiesMapper"> <bean class="org.mitre.openid.connect.client.NamedAdminAuthoritiesMapper"> <property name="admins" ref="namedAdmins" /> </bean> </property></bean><util:set id="namedAdmins" value-type="org.mitre.openid.connect.client.SubjectIssuerGrantedAuthority"> <bean class="org.mitre.openid.connect.client.SubjectIssuerGrantedAuthority"> <constructor-arg name="subject" value="90342.ASDFJWFA" /> <constructor-arg name="issuer" value="http://192.168.1.114:8080/openid-connect-server-webapp/" /> </bean></util:set>任何人都可以讓我開始了解我還需要改變什么/在哪里尋找讓 bean 得到認可?這是在我的pom中:<dependency> <groupId>org.mitre</groupId> <artifactId>openid-connect-client</artifactId> <version>1.3.1</version></dependency>
1 回答

鳳凰求蠱
TA貢獻1825條經驗 獲得超4個贊
您很可能servlet-context.xml不包含在 Spring Boot 應用程序中。要么用@ImportResource注釋導入它
@SpringBootApplication
@ImportResource("servlet-context.xml")
public class MyApp {
// ...
}
或將此 XML 轉換為新的 Java 配置類,這將是首選方法:
@Configuration
public class MitreConfig {
@Bean
public Set<SubjectIssuerGrantedAuthority> namedAdmins() {
// ...
}
}
添加回答
舉報
0/150
提交
取消