我很确定我了解 Seeds.rb 的播种工作原理,但我似乎无法使用它来将Restful_authentication User 对象粘贴到数据库中。
User.create(:login => 'admin',
:role => Role.find_by_name('super_admin'),
:email => 'admin@example.com',
:password => '123123')
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?
编辑:我还尝试添加密码确认。依然没有。
我有一个 Flickr,我用它从我的手机上传图片,所有图片都是公开的。在我的博客上,我想检索所有要显示的图像,为此我首先尝试创建一个应用程序来获取我的 API 密钥。我正在使用 Flickr API flickr.people.getPublicPhotos。据说这个 API 服务不需要身份验证,把它们放在一起我最终得到了这个调用:
http://api.flickr.com/services/rest/?method=flickr.people.getPublicPhotos&api_key=fc94274cd0335f3c171fe22c8490b7d9&user_id=5545356%40N04&extras=description%2Cdate_upload%2Cdate_taken%2Cowner_name%2Coriginal_format%2Ctags%2C+o_dims%2C+views%2C+media%2C+path_alias%2C+url_sq%2C+url_t%2C+url_s%2C+url_q%2C+url_m%2C+url_n%2C+url_z%2C+url_c%2C+url_l%2C+url_o&per_page=40&format=php_serial&api_sig=0c48e2b6b6d9a03521e5ca86a15cf471
Run Code Online (Sandbox Code Playgroud)
问题是每大约 10 个小时我就会失败并返回错误消息 a:3:{s:4:"stat";s:4:"fail";s:4:"code";i:100;s:7:"message";s:31:"Invalid API Key (Key not found)";}
我尝试在登录到 Flickr 时创建 API 调用,但没有登录,在这两种情况下我都收到错误消息。这就像 API 密钥过期或停止工作。在 Flickr 上是否遗漏了有关 API 密钥的信息或可能导致此问题的原因?一天两次更新 URL 真的很令人沮丧。
谢谢
真诚的
- Mestika
我有一个使用令牌来验证用户身份的 rails 应用程序。目前我将令牌作为参数传递。我想改变这一点。我相信可以通过 html 标头传递它。我不明白如何使用authenticate_or_request_with_http_token do |token, options|. 我的 rails 应用程序实际上是我的 iphone 客户端的服务器。我不明白的事情是:
我知道options是随机数,但是我的客户端和服务器之间如何解决?
我如何在我的服务器代码中实际使用它。
我可以authenticate_or_request_with_http_token do |token, options|用来检查标头中的令牌,但是一旦成功创建会话,如何将其插入标头中。
这是我的服务器会话控制器:
def create
if @user && @user.authenticate(params[:password])
# @token = @user.auth_token
@user.auth_token = SecureRandom.hex
@user.save
respond_to do |format|
format.json {render :json => {:status => "200", :message => "Logged in successfully", :auth_token => @user.auth_token}}
end
else
respond_to do |format|
format.json {render :json => {:status => "401", :message => "wrong credentials"}}
end
end
end
def destroy
if(@user) …Run Code Online (Sandbox Code Playgroud) 我目前正在将 RESTful API 添加到 Rails 教程中的示例应用程序中,并且我正在尝试使用门卫来保护它,而无需其他宝石(例如设计或许可)。我希望门卫根据现有会话对用户进行身份验证。当前的会话实现在浏览器中保留remember_tokencookie(在登录时分配)并将散列令牌存储在用户模型中。
我在模块(app/helpers/sessions_helper.rb)中有一个current_user方法SessionsHelper,它也包含在ApplicationController中:
def current_user
remember_token = User.digest(cookies[:remember_token])
@current_user ||= User.find_by(remember_token: remember_token)
end
Run Code Online (Sandbox Code Playgroud)
这是resource_owner_authenticator(其他失败的实现已被注释掉):
resource_owner_authenticator do
# fail "Please configure doorkeeper resource_owner_authenticator block located in #{__FILE__}"
# Put your resource owner authentication logic here.
# Example implementation:
# User.find_by_id(session[:user_id]) || redirect_to(new_user_session_url)
# puts current_user || "no user"
# current_user # || redirect_to(signin_path)
# remember_token = User.digest(request.cookies[:remember_token])
# User.find_by(remember_token: remember_token)
# puts "in resource_owner_authenticator"
current_user
end
Run Code Online (Sandbox Code Playgroud)
以下是来自一个 GET 请求的错误: …
我即将开始使用CRUD方法编写新的RESTful服务,并且需要满足HIPAA合规性,所以我想知道2-legged OAuth 2.0是否符合该要求.
有什么来源我可以看一下,所以我可以确认是或否?我做了一个快速的谷歌搜索,但找不到详细的东西.
提前致谢
我正在使用RAML创建一个Web服务API。
我用两种安全方案创建了RAML
我的第一种方法是根据请求参数处理授权,在该请求参数中,我在请求内发送了一个特殊参数,然后将授权任务委派给任一授权引擎。但这没有用,当向OAuth服务器发出请求时,它就抛出了Null Pointer Exception。
然后我才知道针对不同授权方案的授权请求应具有不同的URI,例如,如果发出了针对oAuth的请求,则URI应该类似于/ api / oauth2 / authorize?parameters,而对于其他方案而言,oauth 1.0可以是/ api / oauth1 /授权参数
为了实现这一点,我添加了两个具有不同URI模式的APIkit路由器流。
所附图像中的第一个APIKit流用于自定义授权,第二个用于OAuth。从图中可以看出,在第二个流程中,我在APIkit路由器之前添加了OAuth验证器。
我想知道将OAuth验证器放在该位置是否正确,以便可以验证每个请求?还是应该将OAuth验证程序作为每个资源流的第一个元素,以便在发出请求后,OAuth可以验证对单个资源的请求。我还在OAuth的某处读到了内容,首先对请求进行身份验证,然后才允许访问受保护的资源,在这种情况下,我猜想我在APIKit路由器正确之前添加OAuth验证程序的方法。但是,我不确定这一点,并希望在整个场景中提供第二条建议。
谢谢。
你好,我使用 RESTful 进行基本身份验证,此代码是 RestController 的一部分:
@GetMapping("/jpa/users/{username}/goals")
public List<Goal> getAllGoals(@PathVariable String username) {
userId = getUserIdFromUsername(username);
return goalJpaRepository.findByUserId(userId);
}
public Long getUserIdFromUsername(String username) {
User user = userJpaRepository.findByUsername(username);
userId = user.getId();
return userId;
}
Run Code Online (Sandbox Code Playgroud)
我有一个问题,例如我正在使用 Postman 来检索特定用户的目标,如下所示:
http://localhost:8080/jpa/users/john/goals 带有 GET 请求
然后我对用户名 john 和该用户名的密码使用基本身份验证,然后我收到了 john 的目标。
之后,如果我对此链接http://localhost:8080/jpa/users/tom/goals执行 GET 请求,我会收到 Tom 的目标,但此时我已使用 john 登录,因此 john 可以看到他的目标,他也可以看到汤姆的目标。
问题是我如何访问 RestController 中的登录用户名,因为我想做这样的事情:
if (loginUsername == username) {
return goalJpaRepository.findByUserId(userId);
}
return "Access denied!";
Run Code Online (Sandbox Code Playgroud)
所以我想知道是否可以从HTTP Header访问登录用户名?
谢谢你!
更新- 是的,框架是 Spring Boot,我也使用 Spring Security …
java rest restful-authentication basic-authentication spring-rest
与我合作的外部组织允许我访问私有(受身份验证令牌保护的)docker 注册表,最终我希望能够使用 docker 的 HTTP API V2 查询此注册表,以便获取所有注册表中可用的存储库和/或图像。
但在我这样做之前,我首先想获得一些在公共注册表(如Docker Hub )上构建这些类型的 API 查询的基本实践。因此,我继续在 Docker Hub 上使用用户名和密码注册了自己,并查阅了 API V2 文档,其中指出可以请求进行API 版本检查,如下所示:
GET /v2/
Run Code Online (Sandbox Code Playgroud)
或请求存储库列表为:
GET /v2/_catalog
Run Code Online (Sandbox Code Playgroud)
使用 curl 以及我用于注册 Docker Hub 帐户的用户名和密码,我尝试在命令行构造一个 GET 请求:
stachyra> curl -u stachyra:<my_password> -X GET https://index.docker.io/v2/
{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":null}]}
stachyra> curl -u stachyra:<my_password> -X GET https://index.docker.io/v2/_catalog
{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":[{"Type":"registry","Class":"","Name":"catalog","Action":"*"}]}]}
Run Code Online (Sandbox Code Playgroud)
当然,<my_password>我用我的实际帐户密码代替了 。
我一直期望从这个查询中得到的响应是一条巨大的 json 消息,列出了数千个存储库名称,但 API 似乎拒绝了我的 Docker Hub 凭据。
问题 1:我什至有index.docker.iodocker hub 注册表的正确 URL ( …
我正在使用Apache Jersey构建RESTful Web服务.现在我希望你需要对它的一些请求进行身份验证.使用典型的REST方法,身份验证应通过HTTP身份验证完成.但是这里的帖子 提到,如何做到这一点的更好方法是使用cookies.我认为讨论中有一些有效的观点.(如何)我可以使用Cookie验证泽西岛身份验证吗?我需要另一个框架吗?
我需要创建一个SpringBoot RESTful API,供Web项目或移动应用程序使用.
我的问题是如何在没有通常的基本授权的情况下保护它,它将"jsessionid"返回给Web浏览器并保持与它的会话.对于Web项目来说这不是问题,因为它可以存储jsessionid.但是如何保护移动应用程序请求到API?
对不起我的英语不好.谢谢.
rest ×5
api ×3
java ×2
docker ×1
docker-api ×1
dockerhub ×1
doorkeeper ×1
flickr ×1
jersey ×1
mule ×1
oauth-2.0 ×1
raml ×1
seed ×1
spring ×1
spring-boot ×1
spring-rest ×1