【问题标题】:How do I call MitreID OIDC server?如何调用 MitreID OIDC 服务器?
【发布时间】:2019-05-19 23:00:39
【问题描述】:

我正在使用来自here 的 Spring Boot MitreID OIDC 应用程序。这运行正常,我可以登录,但没有其他选项可供我使用:

我正在尝试使用simple-web-app 访问它。在 simple-web-app 中,我尝试使用 URI 登录:http://localhost:8080/openid-connect-server-webapp/。这给出了:

WARN : org.mitre.openid.connect.client.service.impl.DynamicServerConfigurationService -
 Couldn't load configuration for http://localhost:8080/openid-connect-server-webapp/: 
com.google.common.util.concurrent.UncheckedExecutionException: 
org.springframework.web.client.HttpClientErrorException: 404 
ERROR: org.mitre.openid.connect.client.OIDCAuthenticationFilter - No server 
configuration found for issuer: http://localhost:8080/openid-connect-server-webapp/

编辑:当我尝试http://localhost:8080 我得到:

    WARN : org.mitre.openid.connect.client.service.impl.WebfingerIssuerService - Webfinger 
endpoint MUST use the https URI scheme, overriding by configuration
ERROR: org.mitre.openid.connect.client.OIDCAuthenticationFilter - No client
 configuration found for issuer: http://localhost:8080/

谁能指出我正确的方向?

仅供参考,simple-web-app 只有一个 java 类:

package org.mitre.web;

import java.security.Principal;
import java.util.Locale;
import java.util.Set;

import javax.annotation.Resource;

import org.mitre.openid.connect.client.OIDCAuthenticationFilter;
import org.mitre.openid.connect.client.SubjectIssuerGrantedAuthority;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

/**
 * Handles requests for the application home page.
 */
@Controller
public class HomeController {

    private static final Logger logger = LoggerFactory.getLogger(HomeController.class);

    // filter reference so we can get class names and things like that.
    @Autowired
    private OIDCAuthenticationFilter filter;

    @Resource(name = "namedAdmins")
    private Set<SubjectIssuerGrantedAuthority> admins;

    /**
     * Simply selects the home view to render by returning its name.
     */
    @RequestMapping(value = "/", method = RequestMethod.GET)
    public String home(Locale locale, Model model, Principal p) {

        model.addAttribute("issuerServiceClass", filter.getIssuerService().getClass().getSimpleName());
        model.addAttribute("serverConfigurationServiceClass", filter.getServerConfigurationService().getClass().getSimpleName());
        model.addAttribute("clientConfigurationServiceClass", filter.getClientConfigurationService().getClass().getSimpleName());
        model.addAttribute("authRequestOptionsServiceClass", filter.getAuthRequestOptionsService().getClass().getSimpleName());
        model.addAttribute("authRequestUriBuilderClass", filter.getAuthRequestUrlBuilder().getClass().getSimpleName());

        model.addAttribute("admins", admins);

        return "home";
    }

    @RequestMapping("/user")
    @PreAuthorize("hasRole('ROLE_USER')")
    public String user(Principal p) {
        return "user";
    }

    @RequestMapping("/open")
    public String open(Principal p) {
        return "open";
    }

    @RequestMapping("/admin")
    @PreAuthorize("hasRole('ROLE_ADMIN')")
    public String admin(Model model, Principal p) {

        model.addAttribute("admins", admins);

        return "admin";
    }

    @RequestMapping("/login")
    public String login(Principal p) {
        return "login";
    }

}

【问题讨论】:

    标签: java spring-boot openid-connect mitreid-connect


    【解决方案1】:

    MitreID 在 root 上提供服务,但示例应用程序正在调用 /openid-connect-server-webapp/ 您需要更改您的示例应用程序以指向正确的颁发者....http://localhost:8080/(可能在示例应用程序的 application.properties 中?)或者您的 MitreID 服务器配置不正确(可能是颁发者属性)

    请参阅 http://localhost:8080/.well-known/openid-configuration 了解您的示例应用程序可能遇到的所有端点

    【讨论】:

    • 谢谢!抱歉忘了提:我试过了。我已经编辑了这个问题。等等……
    • 您能否详细解释一下“MitreID 服务器配置不正确(可能是颁发者属性)”?
    • 示例未配置为与弹簧靴叉一起使用。在github.com/mitreid-connect/simple-web-app/blob/master/src/main/…中查找发行人参考
    • 谢谢。删除该文件中对 openid-connect-server-webapp 的引用使其工作。或者更确切地说,它给出了一个不同的错误。
    • 新问题here
    猜你喜欢
    • 2021-12-02
    • 2023-03-03
    • 2021-03-17
    • 2018-06-07
    • 2016-05-06
    • 2021-12-21
    • 2021-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多