小编use*_*mda的帖子

HttpClient中的授权承载令牌?

我试图在Java中使用oauth2授权令牌访问API这是客户端代码

DefaultHttpClient httpclient = new DefaultHttpClient(); 
HttpPost post = new HttpPost(http://res-api");
post.setHeader("Content-Type","application/json");
post.setHeader("Authorization", "Bearer " + finalToken);

JSONObject json = new JSONObject();
// json.put ...
// Send it as request body in the post request 

StringEntity params = new StringEntity(json.toString());
post.setEntity(params);

HttpResponse response = httpclient.execute(post);
httpclient.getConnectionManager().shutdown();
Run Code Online (Sandbox Code Playgroud)

这返回401.

等效的curl命令可以使用相同的令牌没有问题:

curl -H "Content-Type:application/json" -H "Authorization:Bearer randomToken" -X POST -d @example.json http://rest-api
Run Code Online (Sandbox Code Playgroud)

我尝试注销请求,看起来授权设置正确

DEBUG [2016-06-28 20:51:13,655] org.apache.http.headers: >> Authorization: Bearer authRandomToKen; Path=/; Domain=oauth2-server; Expires=Wed, 29 Jun 2016 20:51:13 UTC
Run Code Online (Sandbox Code Playgroud)

我通过复制粘贴这个相同的令牌尝试了curl命令,并且t工作正常

虽然我也看到了这一行

DEBUG [2016-06-28 …
Run Code Online (Sandbox Code Playgroud)

java authentication curl httpclient bearer-token

12
推荐指数
2
解决办法
2万
查看次数

无法发现泊坞容器

我正在按照本教程进行服务发现http://jasonwilder.com/blog/2014/07/15/docker-service-discovery

简述:

我创建了一个运行在xyzd:4001的etcd主机

docker run -d --name etcd -p 4001:4001 -p 7001:7001 coreos/etcd
Run Code Online (Sandbox Code Playgroud)

在backend_serverip:8000和docker-register创建了一个运行容器的后端服务器

$ docker run -d -p 8000:8000 --name whoami -t jwilder/whoami
$ docker run --name docker-register -d -e HOST_IP=$(hostname --all-ip-addresses | awk '{print $1}') -e ETCD_HOST=x.y.z.d:4001 -v /var/run/docker.sock:/var/run/docker.sock -t jwilder/docker-register
Run Code Online (Sandbox Code Playgroud)

在backend2_serverip:8000和docker-register创建了另一个运行容器的后端服务器

 $ docker run -d -p 8000:8000 --name whoami -t jwilder/whoami
 $ docker run --name docker-register -d -e HOST_IP=$(hostname --all-ip-addresses | awk '{print $1}') -e ETCD_HOST=x.y.z.d:4001 -v /var/run/docker.sock:/var/run/docker.sock -t jwilder/docker-register
Run Code Online (Sandbox Code Playgroud)

创建了一个运行docker-discover和ubuntu映像的客户端

$ docker run -d --net …
Run Code Online (Sandbox Code Playgroud)

registry service-discovery docker etcd

8
推荐指数
1
解决办法
346
查看次数

Angular js读取环境变量

我试图在http get调用中读取环境变量

$http.get('http://'  + $location.host() + ':8080/api')
Run Code Online (Sandbox Code Playgroud)

我希望能够读取environmen变量并将其用作上面API调用中的http rest服务器,如下所示

 $http.get('environmental_variable ':8080/api')
Run Code Online (Sandbox Code Playgroud)

注意:我不知道环境变量直到运行时因此我不能将值作为常量使用

http environment-variables angularjs

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

Nginx位置/ vs/artifactory

我正在寻找nginx配置来设置docker存储库

###########################################################
## this configuration was generated by JFrog Artifactory ##
###########################################################

## add ssl entries when https has been set in config
ssl_certificate      /etc/nginx/ssl/demo.pem;
ssl_certificate_key  /etc/nginx/ssl/demo.key;
ssl_session_cache shared:SSL:1m;
ssl_prefer_server_ciphers   on;
## server configuration
server {
    listen 443 ssl;
    listen 80 ;
    server_name ~(?<repo>.+)\.art.local art.local;

    if ($http_x_forwarded_proto = '') {
        set $http_x_forwarded_proto  $scheme;
    }
    ## Application specific logs
    ## access_log /var/log/nginx/art.local-access.log timing;
    ## error_log /var/log/nginx/art.local-error.log;
    rewrite ^/$ /artifactory/webapp/ redirect;
    rewrite ^/artifactory/?(/webapp)?$ /artifactory/webapp/ redirect;
    rewrite ^/(v1|v2)/(.*) /artifactory/api/docker/$repo/$1/$2;
    chunked_transfer_encoding on;
    client_max_body_size 0; …
Run Code Online (Sandbox Code Playgroud)

nginx artifactory docker-registry nginx-location

8
推荐指数
1
解决办法
645
查看次数

入口指向服务上的错误端口

我有一个Kubernetes服务,公开两个端口如下

Name:              m-svc
Namespace:         m-ns
Labels:            
Annotations:       <none>
Selector:          app=my-application
Type:              ClusterIP
IP:                10.233.43.40
Port:              first  8080/TCP
TargetPort:        8080/TCP
Endpoints:         10.233.115.178:8080,10.233.122.166:8080
Port:              second  8888/TCP
TargetPort:        8888/TCP
Endpoints:         10.233.115.178:8888,10.233.122.166:8888
Session Affinity:  None
Events:            <none>
Run Code Online (Sandbox Code Playgroud)

以下是入口定义:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: f5
    virtual-server.f5.com/http-port: "80"
    virtual-server.f5.com/ip: controller-default
    virtual-server.f5.com/round-robin: round-robin
  creationTimestamp: 2018-10-05T18:54:45Z
  generation: 2
  name: m-ingress
  namespace: m-ns
  resourceVersion: "39557812"
  selfLink: /apis/extensions/v1beta1/namespaces/m-ns
  uid: 20241db9-c8d0-11e8-9fac-0050568d4d4a
spec:

  rules:
  - host: www.myhost.com
    http:
      paths:
      - backend:
          serviceName: m-svc
          servicePort: 8080
        path: /first/path
      - backend:
          serviceName: …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubernetes-ingress kubernetes-service

8
推荐指数
1
解决办法
476
查看次数

envsubst命令卡在容器中

我要求在应用程序运行之前,它的某些部分需要读取环境变量.为此,我有以下docker文件

FROM nodesource/jessie:0.12.7

# install gettext for envsubst
RUN apt-get update
RUN apt-get install -y gettext-base

# cache package.json and node_modules to speed up builds
ADD package.json package.json
RUN npm install

# Add  source files
ADD src src

# Substiture value for backend endpoint env var
RUN envsubst < src/js/envapp.js > src/js/app.js

ADD node_modules node_modules
EXPOSE 8000
CMD ["npm","start"]
Run Code Online (Sandbox Code Playgroud)

上面的envsubst行读取(应该读取)一个env变量$MYENV并替换它.但是当我打开文件app.js时,它是空的.我检查了容器中是否存在环境变量,它确实存在.是什么原因,它的价值不被读取和替换?我也在teh容器中尝试了相同的命令,它可以工作.它只在我运行图像时不起作用

containers environment-variables docker

7
推荐指数
2
解决办法
7729
查看次数

Akka模型用于计算任务

我有以下要求

  • 使用用户名和密码连接到Web服务器并获取验证令牌
  • 读取文件以获取不同的参数
  • 使用步骤1中的身份验证令牌和步骤2中的参数向Web服务器发送http请求

现在我有一个演员执行上述所有任务,如下所示

package akka.first.java;

import akka.actor.UntypedActor;

public class MySingleActor extends UntypedActor {

    public void onReceive(Object msg) {

        if( msg instanceof sendRequest ) {

            //Connect to a webserver with a username and password and get an authetication token
            String token = getToken();
           // Read file to get different parameters
            Param param = readFile();
           // Use the auth token fro step 1 and parameters from step 2 to send an http request to the web server
            Response response = …
Run Code Online (Sandbox Code Playgroud)

java blocking akka

7
推荐指数
2
解决办法
228
查看次数

Java和Hibernate继承-更新时进行类型转换

我的课堂上有以下层次结构

@Entity
@Table(name = "Parent")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public class Parent {
}

@Entity
@DiscriminatorVlaue("FirstChild")
public class FirstChild extends Parent {
}

@Entity
@DiscriminatorVlaue("SecondChild")
public class SecondChild extends Parent {
}
Run Code Online (Sandbox Code Playgroud)

这将按预期创建表Parent。

我的应用程序中的一些业务逻辑:

接受请求后,该请求将保留为“父代”类型,并在表中创建以下条目

Dtype    id  value
Parent   1   "some value"
Run Code Online (Sandbox Code Playgroud)

在处理请求时,它可以是类型,也可以是类型FirstChildSecondChild 因此在我的代码中

if (some condition is met) {
// change the Parent to its firstChild type
}
else {
// chnage it to "SecondChild" type
}
Run Code Online (Sandbox Code Playgroud)

我对继承的理解和用法正确吗?我本质上是在抛出运行时异常的if循环中向下转换对象,但是更改对象的类型是否还会更改DTYPE数据库中的值?我本质上是在使用继承来使事物按其类型进行组织。我可以在构造函数中实现这一功能吗?但是,真正的问题是Dtype更新是否可以修改?

为了进一步解决这个问题,

我在子类中创建了constutructors

public FirstChild(Parent parent) …
Run Code Online (Sandbox Code Playgroud)

java inheritance constructor hibernate

7
推荐指数
1
解决办法
180
查看次数

如何从 aws 秘密管理器中检索 terraform 中的秘密

我有一个秘密存储在我可以访问 arn 的秘密管理器中。我想从此 arn 检索值并在 terraform 中使用它,我该如何实现?

我从 terraform 网站上找到了这个

data "aws_secretsmanager_secret" "by-arn" {
  arn = "arn:aws:secretsmanager:us-east-1:123456789012:secret:example-123456"
}
Run Code Online (Sandbox Code Playgroud)

然后我如何检索该值?意思是什么是“ get-value"EC2 istance 在 terraform 中的等价物?

terraform aws-secrets-manager

7
推荐指数
3
解决办法
5896
查看次数

如何覆盖 HashSet 的 equals()、hashcode() 和 compareTo()

我正在尝试为我的 覆盖提到的方法HashSet

Set<MyObject> myObjectSet = new HashSet<MyObject>();
Run Code Online (Sandbox Code Playgroud)

我的对象:

public class MyObject implements Serializable {

  private static final long serialVersionUID = 1L;

  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  Long id;
  String name;
  int number;
  Map<String,String> myMap;

  public MyObject(String name, int number, Map<String,String> myMap) {
    this.name = name;
    this.number = number;
    this.myMap = myMap;
  }

  [...]
}
Run Code Online (Sandbox Code Playgroud)

如何覆盖 hashcode()、equals() 和 compareTo() 方法?


目前我有以下几点:

public int hashCode () {
  return id.hashCode();
}

// override the equals method.
public boolean equals(MyObject s) {
  return …
Run Code Online (Sandbox Code Playgroud)

java equals hashcode hashset

6
推荐指数
1
解决办法
4290
查看次数