小编Joe*_*Joe的帖子

如何在 ReactJs 中使用不同的文件进行不同的构建

我正在尝试为具有相同代码库但样式发生变化的不同站点构建reactjs应用程序,而组件变化很少(不同站点的不同组件用于相同的工作[相同名称])

当我构建传递参数 CLIENT=site1 的应用程序时,它应该从具有相应站点文件的公共文件中获取文件(css、组件等)并构建一个;如果 CLIENT=site2 那么它将对其文件执行此操作。文件夹结构就像

node_modules
public
  \--index.html
src
  |--resource
  |    |--common
  |    |    |--img
  |    |    \--styles
  |    |--site1
  |    |    |--img
  |    |    \--styles
  |         \--Login.js
  
  |    \--site2
  |         |--img
  |         \--styles
  |         \--Login.js

  |--App.js
  \--index.js
package.json
Run Code Online (Sandbox Code Playgroud)

我尝试使用customize-cra但似乎没有运气。尝试测试config-overrides.js

const path = require('path');
const { addWebpackAlias, override } = require('customize-cra')

const resolveApp = relativePath => path.resolve(__dirname, relativePath)

module.exports = override()(
    addWebpackAlias({
        '@': path.resolve(__dirname, './src/'),
        "@a": path.resolve(__dirname, `./src/resource/${process.env.CLIENT}`),
    }),
);

 "scripts": {
       "start:build1": "set CLIENT=site1  && …
Run Code Online (Sandbox Code Playgroud)

reactjs react-router react-native react-redux

6
推荐指数
0
解决办法
159
查看次数

如何使用 kubernetes Ingress 执行自定义身份验证

我在 kubernetes 中部署了一些服务,并使用 NGINX 入口访问外部。(使用 EC2 实例进行所有集群设置)。能够通过与入口绑定的主机访问服务。现在,我不是直接访问 svc,而是尝试在访问服务之前添加身份验证。并重定向到登录页面,用户输入凭据并应重定向到所询问的页面。到目前为止尝试了以下代码 snipet II。请指导寻找解决方案。

我的入口.yml

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: my-ingress
  namespace: mynamespace  
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
    nginx.ingress.kubernetes.io/affinity: cookie
    nginx.ingress.kubernetes.io/session-cookie-name: JSESSIONID
    nginx.ingress.kubernetes.io/ssl-passthrough: "false"
    nginx.ingress.kubernetes.io/ssl-redirect: "true"
    nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
    kubernetes.io/ingress.class: "nginx"
    kubernetes.io/ingress.allow-http: "false"
    nginx.ingress.kubernetes.io/auth-signin: "https://auth.mysite.domain/api/auth/login"  #will show login page
    nginx.ingress.kubernetes.io/auth-url: "https://auth.mysite.domain/api/auth/token/validate"
    nginx.ingress.kubernetes.io/auth-response-headers: "authorization"    
    
spec:
  tls:
  - hosts: 
    - mysite.domain
    #secretName: ${TLS_TOKEN_NAME}
  rules:
  - host: a.mysite.domain
    http:
      paths:
        - path: /
          backend:
            serviceName: myservice1
            servicePort: 9090 
 
Run Code Online (Sandbox Code Playgroud)

所以首先它会调用“/token/validate”并且将被未经授权然后进入“auth/login”并且登录页面将在输入进入“/token/validate”的凭据并再次登录页面后显示。实际上应该重定向到被调用的页面。

如何实现这一点?[如果成功认证后,如果我们可以在被调用的 ling 中添加标题我认为可以解决但不确定如何]

后端:Java Spring

@RequestMapping("login")  
public String login() { …
Run Code Online (Sandbox Code Playgroud)

oauth spring-boot kubernetes kubernetes-ingress nginx-ingress

5
推荐指数
1
解决办法
7404
查看次数

如何将javascript日期转换为特定时区

我将日期信息作为数字以毫秒为单位.我能够正确地解析它.但是当我改变我的电脑时区时,解析的时间也会改变.我只想要一个特定的时区.

EX.

Time in millisec: 1461645900000
Actual Parsed: 26-Apr-2016 10:15:00 IST
Run Code Online (Sandbox Code Playgroud)

当pc时区改变时,它变为: Tue Apr 26 2016 14:15:00 GMT+0930 (Local Standard Time)

在这里,我只想要实际时间.怎么弄?

这是我的小尝试:

function parseDateTime(dt, format) {
    var months = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug",
            "Sep", "Oct", "Nov", "Dec" ];
    var ret = "";
    if (dt) {
    var day="",month="",year="",hour="",mins="",secs="";
        var d = new Date(dt)
        var os=d.getTimezoneOffset();
        if(os<0){

        }
        ret += d.getDate() + "-" + months[parseInt(d.getMonth())] + "-"
                + d.getFullYear() + " " + leftPad(d.getHours(), 2, "0") …
Run Code Online (Sandbox Code Playgroud)

javascript datetime date

1
推荐指数
2
解决办法
6691
查看次数

如何在java中解密加密的String

我有String s="abc"; 加密字符串显示:ðá£ÅÉûË¿~?‰+×µÚ 和解密相同的值.

但是现在我有相同的加密字符串ðá£ÅÉûË¿~?‰+×µÚ,我可以获得/解密它吗?下面我正在使用的代码.

String key = "Bar12345Bar12345"; // 128 bit key
// Create key and cipher
Key aesKey = new SecretKeySpec(key.getBytes(), "AES");
Cipher cipher = Cipher.getInstance("AES");
// encrypt the text
cipher.init(Cipher.ENCRYPT_MODE, aesKey);
byte[] encrypted = cipher.doFinal(text.getBytes());
String e=new String(encrypted);
byte[] encrypted1 = cipher.doFinal(e.getBytes());
System.out.println(encrypted.length+" "+encrypted1.length);
System.out.println(e);
// decrypt the text
cipher.init(Cipher.DECRYPT_MODE, aesKey);
String decrypted = new String(cipher.doFinal(encrypted));
System.out.println(decrypted);
Run Code Online (Sandbox Code Playgroud)

java encryption

-2
推荐指数
1
解决办法
9295
查看次数