JHipster React 前端(网关)应用程序属性

IT技术 reactjs microservices jhipster
2021-05-05 14:36:43

我正在构建一个 JHipster 微服务应用程序,由微服务、注册表和网关 (React) 组成。在微服务应用程序中,我可以使用 application.yml / ApplicatioProperties.java 添加属性(例如 API 密钥),这些属性可能会在环境(Dev、Prod 等)之间发生变化。

我的问题是,我可以在 React 前端做同样的事情吗?这是一个 Spring 应用程序,因此具有相同的 application.yml 和 ApplicationProperties.java。有没有人有将自定义属性显示到 UI 的代码示例?

1个回答

有一个AuthInfoResource可以获取属性并使它们在/api/auth-info端点上可用您可以使用类似的方式将配置属性公开给您的 React 应用程序。

package <%= packageName %>.web.rest;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * Resource to return information about OIDC properties
 */
@RestController
@RequestMapping("/api")
public class AuthInfoResource {

    @Value("${spring.security.oauth2.client.provider.oidc.issuer-uri:}")
    private String issuer;
    @Value("${spring.security.oauth2.client.registration.oidc.client-id:}")
    private String clientId;


    @GetMapping("/auth-info")
    public AuthInfoVM getAuthInfo() {
        return new AuthInfoVM(issuer, clientId);
    }

    class AuthInfoVM {
        private String issuer;
        private String clientId;

        AuthInfoVM(String issuer, String clientId) {
            this.issuer = issuer;
            this.clientId = clientId;
        }

        public String getIssuer() {
            return this.issuer;
        }

        public void setIssuer(String issuer) {
            this.issuer = issuer;
        }

        public String getClientId() {
            return clientId;
        }

        public void setClientId(String clientId) {
            this.clientId = clientId;
        }
    }
}