标签: basic-authentication

没有 ssl 验证和基本身份验证的 Rails http GET 请求

我正在尝试按照标题中的说明进行 http get 请求。我写的:

uri = URI.parse("https://myaddress.com")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE 
@data = http.get(uri.request_uri)
Run Code Online (Sandbox Code Playgroud)

请求被发送到我想要发送的地方,我收到一个未经授权的响应(正如预期的那样,因为我没有指定基本身份验证)。

我试过了

http.basic_auth 'user', 'pass'
Run Code Online (Sandbox Code Playgroud)

但是对于我的 http 变量的类型没有这样的方法。如何添加身份验证详细信息?

更新:我尝试在这里使用RUBY - SSL、Basic Auth 和 POST 之类的东西,但是在用 Get 替换 Post 之后,我无法使用“use_ssl”和“verify_mode”属性(我没有得到这样的属性错误)。

更新 2:我发现我可以在 Net::HTTP 对象上设置“use_ssl”属性,在 Net::HTTP::Get 对象上设置“basic_auth”。现在的问题是我怎样才能让它们一起工作?

ruby-on-rails basic-authentication

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

Nginx + Symfony。除子文件夹外的基本身份验证

我在 nginx 服务器下有一个 symfony 应用程序。我想启用基本的 http 身份验证,但排除 /api/ url 请求中的所有内容。

这是我当前的 nginx 配置:

server {
    listen 80;
    listen [::]:80;

    root /home/mysite/www/web;

    index app.php index.php index.html;

    server_name mysite.com;

    error_log  /home/mysite/logs/error.log  warn;
    access_log /home/mysite/logs/access.log;


    location / {
        # try to serve file directly, fallback to app.php
        try_files $uri /app.php$is_args$args;
    }

    # PROD
    location ~ ^/app\.php(/|$) {
        include /etc/nginx/php-mysite.conf;

        # Protect access
        auth_basic "Restricted";
        auth_basic_user_file /etc/nginx/.htpasswd;
    }

    location ~ ^/app\.php/api/(.*) {
        include /etc/nginx/php-mysite.conf;
        auth_basic "off";
    }

    location ~ /\.ht {
       deny all;
    } …
Run Code Online (Sandbox Code Playgroud)

php nginx basic-authentication symfony

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

没有数据库的 Laravel 5.4 基本身份验证

问题:我需要在使用 Laravel 5.4 创建的 API 上实现基本身份验证。由于我们需要在没有数据库的情况下实现它(只需从 获取凭据config()),我尝试创建一个注册中间件,如下所示:

<?php

namespace App\Http\Middleware;

class AuthenticateOnceWithBasicAuth
{
    public function handle($request, $next)
    {
        if($request->getUser() != conf('auth.credentials.user') && $request->getPassword() != conf('auth.credentials.pass')) {
            $headers = array('WWW-Authenticate' => 'Basic');
            return response('Unauthorized', 401, $headers);
        }
        return $next($request);
    }
}
Run Code Online (Sandbox Code Playgroud)

它有效,但这样我只能拥有整个 API 的一个凭据。我试图在配置中创建多个凭据,从请求中保存用户和密码,但是这样,它就像禁用了基本身份验证一样工作。

问题:有什么办法可以做到这一点吗?如何在不使用数据库的情况下在我的配置文件中拥有多个凭据?

php authentication basic-authentication laravel laravel-5.4

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

HttpClientErrorException: 401 未经授权的基本身份验证

我试图通过基本身份验证获取 url。我设置了用户/密码,如下所示。同样的凭证在邮递员中工作。

String RELATIVE_IDENTITY_URL  = "http://my_url/api/core/v3/people/email/abc@example.com";
    RestTemplate restTemplate;
    Credentials credentials;

    //1. Set credentials
    credentials = new UsernamePasswordCredentials("admin", "admin");

    CredentialsProvider credsProvider = new BasicCredentialsProvider();
    credsProvider.setCredentials( AuthScope.ANY, credentials);

    //2. Bind credentialsProvider to httpClient
    HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
    httpClientBuilder.setDefaultCredentialsProvider(credsProvider);
    CloseableHttpClient httpClient = httpClientBuilder.build();

    HttpComponentsClientHttpRequestFactory factory = new  
            HttpComponentsClientHttpRequestFactory(httpClient);

    //3. create restTemplate
    restTemplate = new RestTemplate();
    restTemplate.setRequestFactory(factory);

    //4. restTemplate execute
    String url = RELATIVE_IDENTITY_URL;

    String xml = restTemplate.getForObject(url,String.class); 
    System.out.println("Done");
Run Code Online (Sandbox Code Playgroud)

我认为凭据设置不正确。这里有什么问题。?错误:

Exception in thread "main" org.springframework.web.client.HttpClientErrorException: 401 Unauthorized
    at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:91)
    at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:667)
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:620)
    at …
Run Code Online (Sandbox Code Playgroud)

java spring basic-authentication

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

Nginx - 解码 URL 查询参数并将其作为请求头转发

我需要以user:pass查询参数 (es. http://example.com?BASIC_AUTH=dXNlcjpwYXNz)的形式向 nginx发送一些基本的身份验证凭据 (es. ),并能够以更常见的Authorization: Basic dXNlcjpwYXNz标头形式将它们转发到代理后面的目标服务器。

我已经能够使用正则表达式检索编码的 auth 字符串的值。问题是该值通常可能包含一些需要在 URL 中进行百分比编码的字符。埃斯。user:pass!->?BASIC_AUTH=dXNlcjpwYXNzIQ==变成?BASIC_AUTH=dXNlcjpwYXNzIQ%3D%3D

因此,当我将请求转发到目标服务器时,我最终Authorization: Basic dXNlcjpwYXNzIQ%3D%3D会指定目标服务器将拒绝哪个,并给出 401 Unauthorized。

如何在设置 Authorization 标头之前强制 nginx 解码 auth 字符串?在此先感谢您的帮助。

注意:由于某些特定于应用程序的限制,我无法首先在 Authorization 标头中发送 auth 字符串。

nginx urlencode basic-authentication url-encoding

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

Quart 的基本身份验证 - python

我正在寻找在 Quart 上使用基本身份验证。我知道 quart-auth 可用,但它仅支持基于 cookie 的身份验证。有没有一种方法可以使用基本身份验证,而无需使用 Flask-BasicAuth 的 Flask 补丁?

python basic-authentication quart

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

与authenticate_or_request_with_http_basic结合使用时,authlogic会话创建失败

我最近想在heroku上部署我的Rails应用程序,但是想要将它与外界隔离,直到我在heroku上测试它.为了屏蔽它,我使用了authenticate_or_request_with_http_basic.但是,在通过基本身份验证并希望登录(使用authlogic登录系统)后,我发现authlogic不记得会话(例如current_user == nil).

如果没有authenticate_or_request_with_http_basic before_filter,则authlogic会话可以正常工作.

有谁知道这是为什么以及如何让两者协同工作?

提前致谢.

PS:为了清楚起见,我的目标是不能将authlogic用户与authenticate_or_request_with_http_basic一起使用.

PPS:我使用Rails 3和git://github.com/odorcicd/authlogic.git

ruby-on-rails basic-authentication authlogic

0
推荐指数
1
解决办法
681
查看次数

如何将HttpAuthentication传递给selenium webdriver

在我的python项目中,登录过程由HttpBasicAuth处理程序处理.得到响应后,我应该通过selenium加载主页面.

它应该如何完成?

它有baseurl.当基本URL由python-selenium加载时,弹出框会询问用于身份验证的用户名和密码.然后它进入主页面.

以下是两个步骤:

  • 第1步:登录(使用HttpBasicAuth处理程序)

我使用HttpBasicAuth处理程序的原因是,当我打开我的URL时,它会打开一个用于登录的弹出窗口.因为,我们不知道由Selenium处理的弹出模式对话窗口的控制,我们切换到HttpAuthentication.

(这是我需要建议的部分.)

  • 第2步:获得响应后,处理selenium中的剩余步骤.

在这个中间部分,我使用来自HttpBasicAuth处理程序的响应进行身份验证,以便Selenium可以继续测试中的其他步骤.

如何在Selenium中对站点进行身份验证?我是否必须使用HttpBasicAuthentication Response为Selenium webdriver创建一个cookie,以便跳过登录框?

python selenium basic-authentication selenium-webdriver

0
推荐指数
1
解决办法
4957
查看次数

实施BasicAuth,说它缺少BasicAuth?

我已经实现了......或者更确切地说是从http://www.asp.net/web-api/overview/security/authentication-and-authorization/basic-authentication复制粘贴的代码,但是当我尝试运行网站时,我得到了这个错误:

Could not load file or assembly 'BasicAuth' or one of its dependencies. The system cannot find the file specified.
Run Code Online (Sandbox Code Playgroud)

我正在研究这个例子,所以我对这是什么知之甚少,为什么它不起作用?

asp.net basic-authentication asp.net-mvc-4

0
推荐指数
1
解决办法
531
查看次数

.Net web api,SSL + basic auth

我有多组传感器网络将数据发送到.net web api.不知何故,我需要保护API的一些端点(以便我可以确定发送到API的信息确实来自传感器).基本身份验证和SSL似乎是一种方法.问题是我无法理解SSL部分.

截至目前,我已经创建了存储在传感器上的客户端证书,可以通过Request.GetClientCertificate()方法在API中检索证书的信息.当我只是想用基本的身份验证来保护我的Api时,这是否有点过分?也就是说,只需通过https发送数据而不提供证书,通信是否安全?

我不需要使用证书进行身份验证(因为这是通过基本身份验证完成的).

ssl basic-authentication asp.net-web-api

0
推荐指数
1
解决办法
417
查看次数