我需要提供http-basic-auth一个视图.
我想避免修改中间件设置.
背景:这是一个由远程应用程序填充的视图.
python authentication django http-authentication basic-authentication
如何确定REST Web服务是使用Basic,Kerberos,NTLM还是其他许多身份验证方法之一?
我目前正在开发chrome扩展,我需要访问一些受http-auth保护的资源(webdav).HTTP身份验证使用(在最好的情况下)摘要身份验证.
我可以使用https:// login:password@domain.tld/path/to/ressource表单直接在ajax请求中执行auth .
问题是:如果登录/密码错误,我不能获得401状态(未经授权),Chrome会弹出常规身份验证对话框.这是我不想要的,因为它让用户感到困惑,我无法从这里保存凭据.
编辑:我遇到的另一个用例是:我想检查一个资源是否受密码保护,而不试图提供凭据来实际访问它.
关于如何在不弹出Chrome的auth框的情况下抓住401的任何想法?
javascript ajax google-chrome http-authentication google-chrome-extension
我可以访问tomcat管理器并可以上传war文件.其中一场战争是静态网络项目(压缩的html +媒体文件,重命名为*.war).我想在此战争中添加一个Web-INF/web.xml文件,以使用基本的http auth来保护内容.
我知道如何通过添加全局用户和分配角色来实现这一点tomcat-users.xml,但我希望在我的war文件中定义所有用户名和密码.
tomcat-users.xml吗?web.xml?Thx,尤文
通常,当公共可访问目录需要基本HTTP身份验证时,一旦为服务器提供了有效的用户名/密码组合,PHP $_SERVER['HTTP_AUTHORIZATION']和/或$_SERVER['REMOTE_USER'](或$_SERVER['PHP_AUTH_USER']等)的值将被设置并可由PHP访问.
例如,如果http://www.example.com/members需要基本身份验证,并且用户使用凭据成功进行身份验证myusername并mypassword通过手动键入http://myusername:mypassword@www.example.com/members其浏览器,则值$_SERVER['HTTP_AUTHORIZATION']将类似于:
Basic bXl1c2VybmFtZTpteXBhc3N3b3Jk
Run Code Online (Sandbox Code Playgroud)
......而且价值$_SERVER['REMOTE_USER']只是:
myusername
Run Code Online (Sandbox Code Playgroud)
但是,如果在同一目录中不需要身份验证,但仍然使用其中的用户名/密码访问URL,则用户名/密码的值似乎不会在任何位置设置(将PHP 5.3.10作为CGI /运行Apache/2.2.22上的FastCGI).
从PHP内部(和/或.htaccess必要时),当不需要身份验证时,是否有办法检索由手动将其添加到URL的访问者提供的用户名(和/或密码)的值?
问题
我有一个Android Gradle项目,它应该从我的公司的sonatype nexus服务器中提取一个lib.nexus服务器使用证书身份验证.这意味着客户端有一个私有证书,可以对nexus服务器进行身份验证和授权.
问题是如何配置gradle来使用我的证书(在osx密钥库中).
/app/build.gradle
repositories {
// some other repositorys...
...
maven {
credentials {
username = NEXUS_USERNAME
password = NEXUS_PASSWORD
}
url 'https://prefix.server.com/nexus/content/repositories/artifactid'
}
}
Run Code Online (Sandbox Code Playgroud)
在没有提供证书的情况下,nexus服务器响应:
错误:无法HEAD'https://prefix.server.com/nexus/content/repositories/artifactid/de/komoot/android/kmt-material-showcase/0.0.1/kmt-material-showcase-0.0.1. pom '.从服务器收到状态码400:错误请求
我的第一个解决方案是尝试配置jvm以使用osx keychain作为证书.同样的方法帮助我在nexus服务器上推送和发布libs/artifacts.
/app/gradle.properties
org.gradle.jvmargs=-Djavax.net.ssl.keyStore=NONE -Djavax.net.ssl.keyStoreType=KeychainStore -Djavax.net.ssl.keyStorePassword=-
Run Code Online (Sandbox Code Playgroud)
这不起作用gradle sync失败:错误:NONE(没有这样的文件或目录)
它看起来像是参数'-Djavax.net.ssl.keyStore'的'无'.我尝试了几个uper和小写的解决方案,但都失败了.
第二种方法是试用它
org.gradle.jvmargs=-Djavax.net.ssl.keyStoreType=KeychainStore
Run Code Online (Sandbox Code Playgroud)
但服务器再次响应400.看起来没有使用JVM args.
有关此主题的任何想法或文章?希望可以有人帮帮我.
我试图让一个基于python的网络服务器工作.
我想进行基本身份验证(发送401标头)并对用户列表进行身份验证.使用"WWW-Authorize"标头发送401响应没有问题,我可以验证用户响应(base64编码的用户名和密码),但是,成功验证后登录框会不断弹出.
import SimpleHTTPServer
import SocketServer
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
class Handler(BaseHTTPRequestHandler):
''' Main class to present webpages and authentication. '''
def do_HEAD(self):
print "send header"
self.send_response(401)
self.send_header('WWW-Authenticate', 'Basic realm=\"Test\"')
self.send_header('Content-type', 'text/html')
self.end_headers()
def do_GET(self):
''' Present frontpage with user authentication. '''
self.do_HEAD()
if self.headers.getheader('Authorization') == None:
self.wfile.write('no auth header received')
pass
elif self.headers.getheader('Authorization') == 'Basic dGVzdDp0ZXN0':
self.wfile.write(self.headers.getheader('Authorization'))
self.wfile.write('authenticated!')
pass
else:
self.wfile.write(self.headers.getheader('Authorization'))
self.wfile.write('not authenticated')
pass
httpd = SocketServer.TCPServer(("", 10001), Handler)
httpd.serve_forever()
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud)
在第一次加载(http:// localhost:10001)时,登录框弹出,我输入test,test(正确的用户)用户验证确定,但是框弹出,如果我单击取消,我将进入验证页面. .. …
如果我决定为我的服务器使用http模块,我需要执行以下哪些模块/方法?
谢谢.
我有一个标准的HTML登录页面,我宁愿使用它而不是浏览器提供的标准HTTP身份验证弹出窗口.今天,我在登录后使用会话cookie跟踪会话,但我希望无状态并且每次都通过HTTP身份验证.我正在尝试的Web服务已经支持这一点,所以这是一个仅限浏览器的问题.
在jQuery中添加身份验证凭据是微不足道的,但我不知道如何保留它们.如果您从登录页面(jsp)转到主页(另一个jsp),您显然不会保留登录页面中的用户名和密码字段.我知道如果您从弹出窗口输入它们,某些浏览器将存储您的HTTP身份验证凭据,但我不知道它们是否在使用XHRRequest时被存储.如果他们这样做,浏览器之间是否有很多一致性?
此外,用户也需要能够"退出"应用程序.如果浏览器存储身份验证凭据,是否有办法使用JavaScript清除它们.
我觉得我不能成为第一个试图解决这个问题的人.是否有一些jQuery插件或已经处理过的东西?或者根本不可能做我想做的事情?
ajax jquery xmlhttprequest http-authentication stateless-session
我正在尝试使用RestTemplate和httpclient(4.x)进行Digest(或基本)身份验证.
由于我找不到任何关于如何实际执行此操作的相关示例,我尝试了各种方法来挂钩各种httpclient工件,没有运气 - 本质上,根本没有发送任何身份验证标头.
我目前的实施是:
DefaultHttpClient newHttpClient = new DefaultHttpClient();
Credentials credentials = new UsernamePasswordCredentials( username, password );
AuthScope authScope = new AuthScope( host, port, AuthScope.ANY_REALM );
BasicCredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials( authScope, credentials );
newHttpClient.setCredentialsProvider( credentialsProvider );
HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory( newHttpClient );
restTemplate.setRequestFactory( requestFactory );
Run Code Online (Sandbox Code Playgroud)
有什么我做错了吗?这个地方还有一个可行的例子吗?任何帮助表示赞赏.谢谢.
spring restful-authentication http-authentication basic-authentication resttemplate