我想basicConstraints=CA:TRUE,pathlen:0在我自己签名的CA创建脚本中包含一个约束,如果我不必创建配置文件和适当CA的所有文件夹结构,那么简化我的过程将会有很长的路要走.
我正在尝试创建一个只能签署最终证书的中间证书,而不是其他CA. 我将使用bouncycastle签署所有进一步的证书,无论如何我将不需要为正确的CA创建的文件夹结构.
即使我提供了实际实例,Byte Buddy 似乎也只将公共类视为拦截器实现;我经常发现自己想做这样的事情:
import static MethodDelegation.to;
new ByteBuddy().subclass(Object.class).method(any()).intercept(to(new Object() {
@RuntimeType
public Object intercept(@Origin Method m, @AllArguments Object[] a) {
return null;
}
});
Run Code Online (Sandbox Code Playgroud)
然而,这会导致如下异常:
Exception in thread "main" java.lang.IllegalStateException: class net.bytebuddy.renamed.java.lang.Object$ByteBuddy$pUmdGhyP cannot access class us.levk.guice.vs.Scopes$1Builder$1
Run Code Online (Sandbox Code Playgroud)
可见性强制执行背后是否有任何原因?
编辑:虽然我仍然遇到问题;我得到了一个不同的例外,这是我的代码:
package us.levk.guice.vs;
import static net.bytebuddy.implementation.MethodDelegation.to;
import static net.bytebuddy.matcher.ElementMatchers.any;
import java.lang.reflect.Method;
import java.util.function.Function;
import java.util.function.Supplier;
import net.bytebuddy.ByteBuddy;
import net.bytebuddy.dynamic.loading.ClassLoadingStrategy;
import net.bytebuddy.implementation.bind.annotation.AllArguments;
import net.bytebuddy.implementation.bind.annotation.Origin;
import net.bytebuddy.implementation.bind.annotation.RuntimeType;
public class Bar {
Function<Supplier<?>, Class<?>> wrapper () {
return s -> {
return new ByteBuddy ().subclass (Object.class) …Run Code Online (Sandbox Code Playgroud) 我使用 KOPS 在 AWS 中设置了一个 kubernetes 集群;现在我想设置一个 NGINX 入口控制器并使用 AWS 托管证书终止 TLS。我理解的拓扑是 AWS ELB 面向互联网并终止 TLS,将未加密的转发到入口服务,然后进行调度。
我已经从https://github.com/kubernetes/ingress/tree/master/examples/aws/nginx部署了入口控制器
除了我使用https://github.com/kubernetes/ingress/issues/71上所述的注释来添加证书。
我将路由添加到 Route53 并打开我的浏览器到 https 地址并从 NGINX 获得 400 响应,并显示消息“纯 HTTP 请求已发送到 HTTPS 端口”
我究竟做错了什么?
这是我的入口资源:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
name: dispatcher
namespace: test
spec:
rules:
- host: REDACTED
http:
paths:
- backend:
serviceName: REDACTED
servicePort: 80
path: /api/v0
Run Code Online (Sandbox Code Playgroud) ssl nginx amazon-web-services kubernetes elastic-load-balancer
我有一个无服务器项目,应该部署一个队列,将该队列订阅到现有主题,并使用 lambda 来处理队列中的消息。这是我的 yaml:
service: "ssul-${opt:branch}"
provider:
name: aws
runtime: nodejs8.10
region: eu-west-1
functions:
update:
reservedConcurrency: 10
handler: index.update
events:
- sqs:
arn: {Fn::GetAtt: [Queue, Arn]}
batchSize: 1
resources:
Resources:
Queue:
Type: "AWS::SQS::Queue"
Properties:
MessageRetentionPeriod: 10800
VisibilityTimeout: 900
QueueName: "updates-${opt:branch}"
Subscription:
Type: "AWS::SNS::Subscription"
Properties:
TopicArn: "${env:TOPIC_ARN}"
Protocol: sqs
Endpoint:
Fn::GetAtt: [Queue, Arn]
Run Code Online (Sandbox Code Playgroud)
我运行sls deploy --branch master返回正常,除了订阅之外的所有内容都已部署。该主题位于不同的帐户中,但我能够创建一个队列并通过控制台手动订阅它。我究竟做错了什么?
我试图用Byte Buddy拦截构造函数调用,这是我的示例代码:
package t;
import static net.bytebuddy.dynamic.loading.ClassLoadingStrategy.Default.INJECTION;
import static net.bytebuddy.implementation.MethodDelegation.to;
import static net.bytebuddy.matcher.ElementMatchers.any;
import java.util.concurrent.Callable;
import net.bytebuddy.ByteBuddy;
import net.bytebuddy.implementation.bind.annotation.RuntimeType;
import net.bytebuddy.implementation.bind.annotation.SuperCall;
public class Bar {
public static void main (String[] args) {
new ByteBuddy ().subclass (Object.class)
.name ("t.Foo").constructor (any ()).intercept (to (new Object () {
@RuntimeType
public Object construct (@SuperCall Callable<Object> z) throws Exception {
System.out.println ("CALLING XTOR");
return z.call ();
}
})).make ().load (Bar.class.getClassLoader (), INJECTION).getLoaded ();
}
}
Run Code Online (Sandbox Code Playgroud)
产生以下异常:
Exception in thread "main" java.lang.IllegalStateException: Error invoking java.lang.ClassLoader#findClass
at …Run Code Online (Sandbox Code Playgroud) 我需要使用grep,awk,sed或其他东西从流中删除包含"不是动态可执行文件"和前一行的行.我目前的工作解决方案是在整个流中删除新行,然后使用sed替换我匹配之前的换行符,然后使用tr添加新行,然后使用grep -v.用这种方法我有点厌倦了文物,但我不知道我现在还能做些什么:
tr '\n' '|' | sed 's/|\tnot a dynamic executable/__MY_REMOVE/g' | tr '|' '\n'
Run Code Online (Sandbox Code Playgroud)
编辑:
输入是通过管道传输给xargs ldd的混合文件列表,基本上我想忽略关于非库文件的所有输出,因为这与我接下来要做的事情无关.我不想使用lib*.so掩码,因为它可以完全不同
我有运行2个命名端口的kube服务,如下所示:
$ kubectl get service elasticsearch --output json
{
"apiVersion": "v1",
"kind": "Service",
"metadata": {
... stuff that really has nothing to do with my question ...
},
"spec": {
"clusterIP": "10.0.0.174",
"ports": [
{
"name": "http",
"nodePort": 31041,
"port": 9200,
"protocol": "TCP",
"targetPort": 9200
},
{
"name": "transport",
"nodePort": 31987,
"port": 9300,
"protocol": "TCP",
"targetPort": 9300
}
],
"selector": {
"component": "elasticsearch"
},
"sessionAffinity": "None",
"type": "NodePort"
},
"status": {
"loadBalancer": {}
}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试获取仅包含'http'端口的输出:
$ kubectl get service …Run Code Online (Sandbox Code Playgroud) byte-buddy ×2
java ×2
kubernetes ×2
ssl ×2
amazon-sns ×1
awk ×1
aws-lambda ×1
bash ×1
bytecode ×1
grep ×1
kubectl ×1
nginx ×1
openssl ×1
regex ×1
sed ×1
serverless ×1
tr ×1