【问题标题】:JHipster React Front End (Gateway) Application PropertiesJHipster React 前端(网关)应用程序属性
【发布时间】:2020-06-10 23:42:36
【问题描述】:
我正在构建一个 JHipster 微服务应用程序,由微服务、注册表和网关 (React) 组成。
在微服务应用程序中,我可以使用 application.yml / ApplicatioProperties.java 添加可能在环境(Dev、Prod 等)之间更改的属性(例如 API 密钥)。
我的问题是,我可以在 React 前端做同样的事情吗?这是一个 Spring 应用程序,因此具有相同的 application.yml 和 ApplicationProperties.java。有没有人有将自定义属性呈现到 UI 的代码示例?
【问题讨论】:
标签:
reactjs
microservices
jhipster
【解决方案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;
}
}
}