小编dgn*_*dgn的帖子

AspNet Identity 2:自定义OAuth端点响应

我成功实现了我的自定义OAuthAuthorizationServerProvider.但是当我登录并检索令牌时,我的客户端不知道用户的角色,声明等.

我目前添加了一个webapi控制器来返回委托人的声明列表,但我对此并不满意.

请求令牌时,当前响应如下所示:

{
    access_token: "qefelgrebjhzefilrgo4583535",
    token_type: "bearer",
    expires_in: 59
}
Run Code Online (Sandbox Code Playgroud)

问:如何让它返回类似下面的片段?

{
    access_token: "qefelgrebjhzefilrgo4583535",
    token_type: "bearer",
    expires_in: 59,
    user: {
        name: 'foo',
        role: 'bar'
    }
}
Run Code Online (Sandbox Code Playgroud)

我到目前为止的进展:

文件OAuthAuthorizationServerProvider#TokenEndpoint(OAuthTokenEndpointContext)说:

在成功的令牌端点请求的最后阶段调用.应用程序可以实现此调用,以便对用于发出访问或刷新令牌的权利要求进行任何最终修改.也可以使用此调用以向Token端点的json响应主体添加其他响应参数.

我找不到任何如何自定义响应的示例,并且asp-net Identity的源代码尚未发布,所以我很困惑.

oauth-2.0 asp.net-identity asp.net-web-api2

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

在dropwizard-hibernate中生成模式

我按照dropwizard和hibernate的教程没有问题.现在我在我的实体中有非平凡的注释,我希望hibernate为我生成表格,以及类似的东西.那么,我该如何改变hibernate的配置呢?我可以给它一个hibernate.cfg.xml吗?如果可以的话,我是否必须再次建立连接?

我发现了这个PR,但它似乎还没有公开发布(我的jar中没有hibernateBundle.configure)

但也许我在寻找错误的东西.到目前为止,我只是想设置hibernate.hbm2dll.auto.毕竟,可能还有另一种方法可以在Dropwizard中启用hibernate表生成 ...那么,有什么帮助吗?

谢谢.


编辑:我从另一个角度处理问题,显式创建模式而不是使用hbm2ddl.auto.见建议的答案.

maven hibernate-4.x dropwizard

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

Owin.Security.OAuth上的Authorization_code授权流:返回invalid_grant

我正在尝试使用authorization_code授权流程设置我的身份验证.我以前曾经使用它grant_type=password,所以我知道这些东西应该如何工作.但是在使用时grant_type=authorization_code,我无法让它返回任何其他东西invalid_grant

这是我的设置:

app.UseOAuthAuthorizationServer(new OAuthAuthorizationServerOptions
{
    AllowInsecureHttp = true,
    TokenEndpointPath = new PathString("/auth/token"),
    AccessTokenExpireTimeSpan = TimeSpan.FromMinutes(5),
    Provider = new SampleAuthProvider()
});

app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions
{
    AuthenticationMode = Microsoft.Owin.Security.AuthenticationMode.Active,
    AuthenticationType = "Bearer"
});
Run Code Online (Sandbox Code Playgroud)

SampleAuthProvider是以下类:https://gist.github.com/anonymous/8a0079b705423b406c00

基本上,它只是记录每一步并验证它.我试过了这个请求:

POST http://localhost:12345/auth/token
grant_type=authorization_code&code=xxxxxx&client_id=xxxxx&redirect_uri=https://xxxx.com/
Content-Type: application/x-www-form-urlencoded
Run Code Online (Sandbox Code Playgroud)

它正在经历:

  • OnMatchEndpoint
  • OnValidateClientAuthentication

就这样.我希望它能打电话OnValidateTokenRequest,OnGrantAuthorizationCode接下来,但事实并非如此.我不知道为什么.

xxxx请求中的's不是占位符,我是这样尝试的.也许中间件会自行进行一些检查并因此拒绝请求?我尝试了redirect_uriwith的变种http,没有任何协议,没有尾随斜线...

它也适用于自定义grant_type.因此,如果我太绝望了,我想我可以用它来模拟authorization_code,但我宁愿不必那样做.

TL; DR

使用后我的OAuthAuthorizationServerProvider回报.{"error":"invalid_grant"}OnValidateClientAuthenticationgrant_type=authorization_code

  • 它为什么停在那里?
  • 我怎么能让整个该死的东西工作?

谢谢你的帮助!


编辑

正如RajeshKannan所指出的,我在配置上犯了一个错误.我没有提供AuthorizationCodeProvider …

asp.net oauth-2.0 owin owin.security

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

如何在Angular 2模板中定义变量?

让我们说我正在使用的模板中的某处:

<div *ng-for="#fooItem of foo">
    {{fooItem.bar.baz.value}}
</div>
Run Code Online (Sandbox Code Playgroud)

我希望能够在循环中编写类似的东西,{{theBaz}}而不是fooItem.bar.baz每次都使用.有没有办法实现这一目标?也许某些语法允许定义任意变量?

文件提到,涉及部件/指令设定值,但显然没有什么简单的用法.

angular

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

Angular 2:如何在嵌套组件上调用方法?

我正在尝试在我的Angular 2组件中声明的元素上调用函数.问题是我不知道如何从我的JS代码中检索元素.如果我可以将元素从模板传递给JS代码,它可以工作,但使用document.querySelector不会返回任何内容.

示例代码(plunk):

@View({
  template: `
    <div>
      <span id="p1">{{name}}</span>
      <span #p2>{{name}}</span>
    </div>
  `,
  encapsulation: ViewEncapsulation.Native
})
export class Person {
  sayHello(e) {
    p1 = document.querySelector('p1');
    console.log('p1:', p1)
    p2 = document.querySelector('p2');
    console.log('p2:', p2)

    alert('VanillaId: ' + (p1 ? p1.innerHTML : 'null') +
          '\nAngularId: ' + (p2 ? p2.innerHTML : 'null'));
  }
}
Run Code Online (Sandbox Code Playgroud)

我怀疑它与阴影dom有关,但我不知道如何获取阴影根并使用它来进行查询.this似乎没有暴露任何有用的访问dom.

web-component shadow-dom angular

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