Tag: 授权

如何自定义PicketLink AuthenticationFilter?

我在我的Web应用程序上安装并运行了PicketLink,但似乎无法按组或角色保护文件夹等资源。 PicketLink AuthenticationFilter(org.picketlink.authentication.web.AuthenticationFilter)没有提供任何方式来说明哪个url-pattern属于哪个组或角色。 如何保护管理目录,以便只有管理员组中的用户可以访问它? 现在,如果您已登录,则可以访问所有内容。 web.xml文件: PicketLinkAuthenticationFilter org.picketlink.authentication.web.AuthenticationFilter authType FORM PicketLinkAuthenticationFilter /admin/* /standarduser/* 我试图创建自己的自定义AuthenticationFilter,但我不能。 我真的希望我能在spring做点什么。 像这样或使用像hasRole或isMember这样的IDM函数:

使用GWT中的Google帐户进行授权/身份validation

我正在尝试启用我的GWT应用程序,使用他们的Google帐户对用户进行身份validation。 我基本上需要的是为每个用户提供一个唯一的值,并确保这些值始终描述正确的用户。 主要要求是,我必须编写的代码行数尽可能小:-) 我正在尝试使用gwt-oauth2库,但看起来OAuth的整个想法是提供一个令牌,允许访问不同的私人资源,如邮件,联系人等,但它没有定义用户本身。 问题#1 – 谷歌给我的令牌只是定义了“具有访问用户私人数据的权限的会话”并且它没有定义“唯一用户”吗? 问题#2 – 我应该使用OpenID,因为我100%确定我永远不需要访问任何私有数据,我唯一需要的是拥有用户的唯一描述符? 对于那些认为它是最简单的方法来复制GWT应用程序的Google身份validation的人? (非GAE托管) 。 这个问题不是关于用于尽快解决问题的库,这个问题是关于“认证是否是授权的子集”的理解。 对于我的案例,问题是OAuth与OpenID。

如何使用HTTPClient设置HTTP请求标头“身份validation”?

我想在向服务器发送POST请求时设置HTTP请求标头“授权”。 我如何用Java做到这一点? HttpClient对它有任何支持吗? http://www.w3.org/Protocols/HTTP/HTRQ_Headers.html#z9 服务器要求我为授权字段设置一些特定值:表单ID:签名,然后他们将使用它来validation请求。 谢谢Ajay

传递oauth令牌请求的授权标头

我使用java实现oauth以获取未经授权的请求令牌。 如何传递授权标头中的参数? 我需要通过: GET /request_token HTTP/1.1 Host: photos.example.net:80 Authorization: OAuth realm=”http://photos.example.net/request_token”, oauth_consumer_key=”dpf43f3p2l4k3l03″, oauth_nonce=”kllo9940pd9333jh”, oauth_timestamp=”1191242096″, oauth_signature_method=”HMAC-SHA1″, oauth_version=”1.0″, oauth_signature=”tR3%2BTy81lMeYAr%2FFid0kMTYa%2FWM%3D” 我该怎么做?

Java授权

在我的Java应用程序中,我想在URL上创建GET,这需要我使用AWS签名进行授权(AccessKey和SecretKey)。 基本上,我希望在Postman中执行相当于GET的授权类型是AWS Signature 有没有关于如何做到这一点的Java特定教程? 我在网上看到了这个课程: public class AWSV4Auth { private final static Logger logger = LogManager.getLogger(AWSV4Auth.class); private AWSV4Auth() { } public static class Builder { private String accessKeyID; private String secretAccessKey; private String regionName; private String serviceName; private String httpMethodName; private String canonicalURI; private TreeMap queryParametes; private TreeMap awsHeaders; private String payload; private boolean debug […]

在playframework中拦截请求和检查授权

我正在使用Java play framework 2.4.2 ,我想通过拦截所有请求并检查是否设置了会话值来validation用户是否已登录。 所以我扩展了DefaultHttpRequestHandler并重写了createAction方法来拦截所有请求。 但是,我还没有找到一种validation会话的好方法。 选项1 – 失败 当我尝试获取会话值时,我得到一个运行时exception: There is no HTTP Context available from here 以下是我正在使用的课程: public class RequestHandler extends DefaultHttpRequestHandler { @Override public Action createAction(Http.Request request, Method method) { session(“loggedIn”); // Throws runtime Exception: no HTTP Context } } 选项2 – 丑陋 由于会话在技术上是一个cookie,我可以从头部检索值,如下所示: for(String cookie : request.headers().get(“Cookie”)){ System.out.println(“cookie: “+cookie); } […]

REST应用程序中的基本身份validation

环境: JAVA Glassfish的 不同机器中的REST服务 带有AJAX和JQuery的HTML5客户端 新泽西 这是我到目前为止所实现的: HTML5客户端### $(‘#btnSignIn’).click(function () { var username = $(“#username”).val(); var password = $(“#password”).val(); function make_base_auth(user, password) { var tok = user + ‘:’ + password; var final = “Basic ” + $.base64.encode(tok); console.log(“FINAL—->” + final); alert(“FINAL—->” + final); return final; } $.ajax({ type: “GET”, contentType: “application/json”, url: “http://localhost:8080/SesameService/webresources/users/secured/login”, crossDomain: […]

如何使用自定义Dropwizardfilter可选地保护资源

我正在使用Dropwizard 0.9.2,我想创建一个不需要GET身份validation的资源,并且需要对POST进行基本身份validation。 我努力了 @Path(“/protectedPing”) @Produces(MediaType.TEXT_PLAIN) public class ProtectedPing { @GET public String everybody() { return “pingpong”; } @PermitAll @POST public String authenticated(){ return “secret pingpong”; } 同 CachingAuthenticator ca = new CachingAuthenticator(environment.metrics(), ldapAuthenticator, cbSpec); AdminAuthorizer authorizer = new AdminAuthorizer(); BasicCredentialAuthFilter bcaf = new BasicCredentialAuthFilter.Builder().setAuthenticator(ca).setRealm(“test-oauth”).setAuthorizer(authorizer).buildAuthFilter(); environment.jersey().register(bcaf); environment.jersey().register(RolesAllowedDynamicFeature.class); environment.jersey().register(new AuthValueFactoryProvider.Binder(User.class)); environment.jersey().register(new ProtectedPing()); 这似乎导致所有要求“/ protectedPing”的请求需要基本身份validation。 在Dropwizard 0.9.2中,文档说如果我有一个可选的受保护资源,则创建一个自定义filter。 我假设我需要这样做,但我不知道从哪里开始,或者我是否真的需要做什么。

OAuthProblem,缺少参数access_token

我在尝试获取用户的访问令牌时遇到此错误。 这与facebook应用程序的授权过程有关。 产生该exception的代码如下: OAuthClientRequest oAuthRequest = OAuthClientRequest .tokenLocation(“https://graph.facebook.com/oauth/access_token”) .setGrantType(GrantType.AUTHORIZATION_CODE) .setClientId(“myAppId”) .setClientSecret(“myAppSecret”) .setRedirectURI(“myAppURL”).setCode(code) .buildBodyMessage(); 下面抛出的exception如下: 12:14:22,468 ERROR [STDERR] OAuthProblemException{description=’Missing parameters: access_token’, error=’invalid_request’, uri=’null’, state=’null’, scope=’null’} 12:14:22,468 ERROR [STDERR] at org.apache.amber.oauth2.common.exception.OAuthProblemException.error(OAuthProblemException.java:57) 12:14:22,468 ERROR [STDERR] at org.apache.amber.oauth2.common.utils.OAuthUtils.handleOAuthProblemException(OAuthUtils.java:165) 12:14:22,468 ERROR [STDERR] at org.apache.amber.oauth2.common.utils.OAuthUtils.handleMissingParameters(OAuthUtils.java:183) 12:14:22,468 ERROR [STDERR] at org.apache.amber.oauth2.client.validator.OAuthClientValidator.validateRequiredParameters(OAuthClientValidator.java:90) 12:14:22,468 ERROR [STDERR] at org.apache.amber.oauth2.client.validator.OAuthClientValidator.validateParameters(OAuthClientValidator.java:53) 12:14:22,468 ERROR [STDERR] at org.apache.amber.oauth2.client.validator.OAuthClientValidator.validate(OAuthClientValidator.java:49) 12:14:22,468 […]

Google oauth2 api客户端无法正常运行

大家好我在grails 2.3.4的控制器动作中有一些代码,它使用谷歌java客户端库来访问OAuth2 api。 但是当我创建一个GoogleAuthorizationCodeFlow实例时,我得到redirect_uri_mismatch错误。 urlgoogle给我的是这个http://localhost:60720/Callback ,而我已经在google api控制台中定义了回调url,因为这个http://localhost:8080/// 。 当我在地址栏中手动粘贴我的重定向url替换谷歌给我的那个时,我的应用程序运行良好。 我已将应用程序注册为api控制台中未安装应用程序的Web应用程序。 我能做什么? 请帮忙。 如果我无法解决这个问题,那么我将恢复到REST Api。 ResourceLocator grailsResourceLocator JsonFactory jsonFactory = JacksonFactory.defaultInstance File clientSecretsFile = grailsResourceLocator.findResourceForURI(“/configs/clientSecrets.json”).file GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(jsonFactory, new InputStreamReader(new FileInputStream(clientSecretsFile))) HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport() FileDataStoreFactory dataStoreFactory = new FileDataStoreFactory(new File(System.getProperty(“user.home”), “.store/oauth2_sample”)) List SCOPES = [“https://www.googleapis.com/auth/userinfo.profile”, “https://www.googleapis.com/auth/userinfo.email”] GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(httpTransport, jsonFactory, clientSecrets, SCOPES).setDataStoreFactory(dataStoreFactory).build() […]