标签: restful-authentication

Asp.Net WebApi 上的自定义授权属性

当用户使用 ASP.Net Web Api 获得授权时,如何返回值?我尝试覆盖授权属性上的 OnAuthorize,但方法类型为“void”,因此我无法返回任何值,或者我应该在标头上附加我想要的值作为响应标头吗?

这是我想要实现的目标:

  1. 用户传递 api 密钥和共享密钥
  2. 当用户被授权时,自定义属性将返回用户的Id和Name
  3. Id 将用于作为参数传递 Rest 方法

c# restful-authentication asp.net-web-api

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

Spring Security:AuthenticationProcessingFilter 被调用两次

我尝试通过 RESTful 应用程序中的令牌授权配置 Spring Security。

我的 AuthenticationFilter 看起来像:

@Configurable

public class CustomTokenAuthenticationFilter extends AbstractAuthenticationProcessingFilter {

    private static final Logger logger = LoggerFactory.getLogger(CustomTokenAuthenticationFilter.class);

    private final static String SECRET_KEY = "ThisIsASecretKey";
    public final String HEADER_SECURITY_TOKEN = "X-Token";

    @Inject
    private Users usres;

    public CustomTokenAuthenticationFilter(String defaultFilterProcessesUrl) {
        super(defaultFilterProcessesUrl);
        super.setRequiresAuthenticationRequestMatcher(new AntPathRequestMatcher(defaultFilterProcessesUrl));
        setAuthenticationManager(new NoOpAuthenticationManager());
    }

    @Override
    public Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response) throws IOException,
            ServletException {
        String token = request.getHeader(HEADER_SECURITY_TOKEN);

        logger.info("token found:" + token);
        TokenInfo tokenInfo = new TokenInfo(token, SECRET_KEY);

        AbstractAuthenticationToken userAuthenticationToken;
        try {
            userAuthenticationToken = …
Run Code Online (Sandbox Code Playgroud)

java spring restful-authentication spring-security

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

如果在初始请求中获得资源,什么使条件 GET 成为“有条件的”?

分解条件 GET 的原因:

RFC 2616它指出GET方法改变为“有条件GET”如果请求消息包括If-*If-Modified-SinceIf-Unmodified-SinceIf-MatchIf-None-Match,或If-Range)头字段。

然后声明:

条件 GET 方法请求在条件标头字段描述的情况下传输实体。

根据我的理解,这是说如果在任何新的后续请求中满足“ ”条件,它只会返回被请求的数据If-*。例如,如果 GET 请求返回一个带有Etag标头的响应,那么下一个请求必须包含If-None-Match带有ETag值以将客户端传回请求的资源。

但是,如果客户端在获取返回的 " ETag" 标头(以返回If-None-Match)之前必须发送初始请求,那么他们已经拥有所请求的资源。因此,任何返回If-None-Match带有该ETag值的标头的未来请求仅指示所请求值的返回,返回200 OK(如果客户端没有从初始请求返回If-None-MatchETag值)或304 Not Modified(如果他们这样做),其中通过缓存资源来帮助客户端和服务器。

我的问题:

为什么它说明了实体(从请求的资源)将“转移ONLY ”如果If-*条件(在我的例子,其中客户端返回等会见ETag与价值If-None-Match,以缓存所请求的资源),如果资源或者“实体" 是否被返回,有或没有 " If-*" …

conditional get restful-authentication http-1.1 http-headers

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

使用Python 3.6使用个人访问令牌对VisualStudioOnline REST API进行身份验证

我正在尝试使用python 3.6的VisualStudioOnline REST API.(使用python 2.x的大量示例)

python脚本响应是通用的html登录页面.

我已经使用REST控制台Chrome插件测试了此脚本生成的url,并且使用我的个人访问令牌工作正常.

import json
import base64
import urllib.request

personal_access_token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

headers = {}
headers['Content-type'] = "application/json"
headers['Authorization'] = b'Basic ' + 
base64.b64encode(personal_access_token.encode('utf-8'))

instance = "mycompany.visualstudio.com"
project = "MyProject"
repository ="MyRepository"
pullrequest = "3468"
api_version = "3.0"

repositories_url = ("https://%s/DefaultCollection/%s/_apis/git/repositories?
api-version=%s" % (instance, project, api_version))
print(repositories_url)

request = urllib.request.Request(repositories_url, headers=headers)
opener = urllib.request.build_opener()
response = opener.open(request)
print(response.read())
Run Code Online (Sandbox Code Playgroud)

Powershell示例

如何使用个人访问令牌对Visual Studio Team Services进行身份验证?

C#和curl示例

https://www.visualstudio.com/en-us/docs/integrate/get-started/authentication/pats

restful-authentication python-3.x azure-devops azure-devops-rest-api

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

Rails Restful Authentication:找不到UserObserver

我是Rails的新手,所以这可能是一个愚蠢的问题......

我按照github网站上提到的插件的基本步骤(主要安装了插件,运行生成器,修改了environment.rb并在models目录中创建了UserObserver类)

我得到的错误是它来自active_support/dependencies."'load_missing_constant':未初始化的常量UserObserver(NameError)." 任何想法为什么它找不到用户观察者类?

ruby-on-rails restful-authentication

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

从字符串输入中获取参数值

如何创建一个类方法来从字符串输入中获取参数?

字符串值GetArugmentValueByName(字符串输入,字符串名称)

myInput="code=4/P7q7W91a-oMsCeLvIaQm6bTrgtp6&
client_id=21302922996.apps.googleusercontent.com&
client_secret=XTHhXh1SlUNgvyWGwDk1EjXB&
redirect_uri=https://www.example.com/back&
grant_type=authorization_code";
Run Code Online (Sandbox Code Playgroud)

如果我这样做

string myGrantType = GetArugmentValueByName(myInput, "grant_type");
Run Code Online (Sandbox Code Playgroud)

myGrantType的值应该等于"authorization_code"

c# string arguments web-services restful-authentication

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

REST API身份验证令牌

我正在从头开始构建我的第一个REST API,并试图了解处理API令牌的最佳方法.我不是在谈论"用户身份验证"(我会使用OAuth).我正在谈论应用程序用来标识自身的公共/私有令牌,以便我的API可以决定是否允许应用程序首先使用API​​.

某些API资源可供具有有效令牌的任何人使用,有些则需要OAuth身份验证.我将通过HTTPS与API进行通信,但我仍然希望确保遵循某种来回传递令牌的标准.

api rest restful-authentication token

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

简单的restlet登录

我正在使用restlet,我想创建一个登录机制,密码和用户名存储在MysqlDatabase中.

public class zeus extends Application {

    @Override
    public Restlet createInboundRoot() {
        // ?????????? ??? router.
        Router router = new Router(getContext());
        router.attach("/customers", CustomersResource.class);

        ChallengeAuthenticator guard = new ChallengeAuthenticator(getContext(), ChallengeScheme.HTTP_BASIC, "login required");

        UserVerifier verifier = new UserVerifier();
        verifier.verify(identifier, secret); // where do i get the identifier ?
        guard.setVerifier(verifier);

        guard.setNext(router);
        return guard;
    }
}
Run Code Online (Sandbox Code Playgroud)

和我的用户验证器类

public class UserVerifier extends SecretVerifier {

    @Override
    public boolean verify(String identifier, char[] secret) {
    System.out.println(identifier);
    System.out.println(secret);
    //TODO compare with the Database
    return true;
    }


}
Run Code Online (Sandbox Code Playgroud)

我找不到如何获取标识符.

java restful-authentication restlet restlet-2.0

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

RESTful身份验证API设计

我有一个关于RESTful API设计的问题.遵循REST的指导原则,所有端点都应该是名词和复数,并且永远不应该是动词.但是,通常认证路由是:

/login
/logout
Run Code Online (Sandbox Code Playgroud)

这两个都是动词.如果你应该遵守指南,那么这些路线看起来应该更像:

/users?action=login
/users?action=logout
Run Code Online (Sandbox Code Playgroud)

但我从来没有使用任何具有此特定身份验证实现的API,每个人都使用第一个,包括我.但是我想知道这是因为很多人没有完全遵循这些指导方针而已成为一种习惯,还是有其他原因?

rest restful-authentication restful-url restful-architecture

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

一台服务器的OAuth 2.0

我已经看到OAuth 2.0协议要求具有API的“ Web App Server”以及对用户进行身份验证的“ OAuth 2”服务器。尽管可以在单个服务器上完成此操作,还是有特定原因必须在两个单独的服务器上完成?

身份验证是否可以是单个Web服务器上的登录API调用,该API本身会返回访问令牌,或者这将是错误的身份验证方式吗?

authentication api restful-authentication oauth-2.0 server

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