PicketLink is a security framework for securing Java EE applications.

Related tags

Security picketlink
Overview

PicketLink

http://picketlink.org

  • Java EE Application Security
  • Identity Management
  • Federation
  • Social
  • REST Security
  • Standard-based Security

This repository is no longer maintained

This repository is no longer maintained and is archived. For more details, please take a look at http://picketlink.org/keycloak-merge-faq.

Building

Ensure you have JDK 7 (or newer) installed

java -version

If you already have Maven 3.1.0 (or newer) installed you can use it directly

mvn clean install

Contributing

http://picketlink.org

Running the Testsuite

All tests are enabled by default whe you execute a simple

mvn clean install

Some modules provide specific profiles and system properties in order to run a specific set of integration or unit tests.

During a build (if tests are not skipped) the integration tests from tests are always executed.

Running the PicketLink IDM Testsuite

For PicketLink IDM, the following profiles are available:

  • idm-smoke-tests: Core tests that should be run as part of every build. Failures here will fail the build.

You also provide some additional system properties as follows:

  • -Dtest.idm.configuration=[all,file,jpa,ldap,jdbc,ldap_jpa]: Specify which category of tests should be run. Usually, they are references to specific configurations for each identity store.
  • -Dtest.idm.jpa.eclipselink.provider=true: Use EclipseLink instead of Hibernate when running the JPA identity store configuration tests.

Nightly Builds

Nightly Builds are available at http://repository-picketlink.forge.cloudbees.com/snapshot/.

Note: Those artitacts are SNAPSHOT versions, they're only suitable to test new features, fixes, etc.

License

Comments
  • Password encoder

    Password encoder

    Good morning guys, I moved the password encoder to commons module, that makes more sense if we're planning to add new algorithms.

    This change also enable users to specify their own password encoder or use another algorithm with PicketLink.

    I've added 1 unit test for it, but let me know if you guys are missing something.

    opened by abstractj 5
  • Fix STS JDBC to work with Oracle, Add SAML_BINDING constant to be used to save the request method of the first saml request to the IDP

    Fix STS JDBC to work with Oracle, Add SAML_BINDING constant to be used to save the request method of the first saml request to the IDP

    See https://github.com/picketlink/picketlink-bindings/pull/45

    Add constructor to IDPWebRequestUtil that uses the retreived SAML_BINDING and if not available the request.getMethod() to determine is the saml request was a bind or a post.

    opened by alpapad 4
  • 2.6.x

    2.6.x

    Picketlink 2.6.1 has a bug that can't pass attributes to SP when SP submits another authentication for SSO after a user has been authenticated on IDP.

    This class org.picketlink.identity.federation.web.handlers.saml2.SAML2AttributeHandler needs to be modified. Line 134 -- 139: Map<String, Object> attribs = (Map<String, Object>) session.getAttribute(GeneralConstants.ATTRIBUTES); if (attribs == null) { attribs = this.attribManager.getAttributes(userPrincipal, attributeKeys); request.addOption(GeneralConstants.ATTRIBUTES, attribs); session.setAttribute(GeneralConstants.ATTRIBUTES, attribs); }

    Change to: Map<String, Object> attribs = (Map<String, Object>) session.getAttribute(GeneralConstants.ATTRIBUTES); if (attribs == null) { attribs = this.attribManager.getAttributes(userPrincipal, attributeKeys); session.setAttribute(GeneralConstants.ATTRIBUTES, attribs); } request.addOption(GeneralConstants.ATTRIBUTES, attribs);

    opened by javafoot 3
  • [PLINK-667] Added test cases for CORS Authorization to HTTP Security API

    [PLINK-667] Added test cases for CORS Authorization to HTTP Security API

    Changes in this PR are limited to PL HTTP Security API and is meant to provide test cases to CORS Authorization. It is however, surprising why it is resulting in test case failures in federation module [https://picketlink.ci.cloudbees.com/job/picketlink/333/].

    opened by girirajsharma 3
  • Made problems with standard @Inject Principal principal, ambiguous dependency

    Made problems with standard @Inject Principal principal, ambiguous dependency

    Without this class being excluded it is not possible to use standard

     @Inject
     private Principal principal;
    

    The error message is:

     Ambiguous dependencies for type Principal with qualifiers @Default
     Possible dependencies:
    
     Built-in Bean [java.security.Principal] with qualifiers [@Default],
     Managed Bean [class org.picketlink.social.standalone.fb.FacebookPrincipal] with qualifiers [@Any @Default]
    
    opened by marcin-caban 3
  • Made problems with standard @Inject Principal principal;

    Made problems with standard @Inject Principal principal;

    Without Vetoed it is not possible to use standard

    @Inject
    private Principal principal;
    

    The error message is:

    Ambiguous dependencies for type Principal with qualifiers @Default Possible dependencies:

    • Built-in Bean [java.security.Principal] with qualifiers [@Default],
    • Managed Bean [class org.picketlink.social.standalone.fb.FacebookPrincipal] with qualifiers [@Any @Default]
    opened by marcin-caban 3
  • Handling authentication exceptions and test case

    Handling authentication exceptions and test case

    Basically, the changes are:

    - Added an exception to indicate that the user is already logged in when trying to logging with the same credentials
    
    - Added an exception to indicate that the user is locked + specific event.
    
    - Changed the SecurityException to be a unchecked exception.
    
    - Changing the DefaultIdentity to always throw a AuthenticationException or one of its subclasses.
    
    - Created two protected methods on DefaultIdentity to handle successful and unsuccessful login attempts. The idea is centralize how both cases are handled and provide more flexibility for custom implementations.
    
    - Added a initial test for authentication using the default authenticator, IdmAuthenticator.
    
    opened by pedroigor 3
  • Catch child classes of IdentityType

    Catch child classes of IdentityType

    When persisting any relationship to the relationship manager, I was getting this error:

    org.picketlink.idm.config.OperationNotSupportedException: PLIDM000604: No identity store configuration found for requested type operation [class path.to.MyRelationshipEntity.create].

    I found that while the relationship object's user and group properties were being queried for their partition, no matching users or groups were found because the search criteria was not allowing child classes of IdentityType. This solves the problem.

    A workaround is to add configurationBuilder.supportGlobalRelationship(org.picketlink.idm.model.Relationship.class); or configurationBuilder.supportAllFeatures(); to your configuration.

    opened by mattalexx 2
  • Update AbstractSPMetadataConfigurationProvider.java

    Update AbstractSPMetadataConfigurationProvider.java

    make sure correct LogOutPage used at line https://github.com/picketlink/picketlink-bindings/blob/master/picketlink-wildfly-common/src/main/java/org/picketlink/identity/federation/bindings/wildfly/sp/SPFormAuthenticationMechanism.java#L538

    opened by bill2004158 2
Owner
PicketLink
PicketLink
OACC (Object ACcess Control) is an advanced Java Application Security Framework

OACC Java Application Security Framework What is OACC? OACC - pronounced [oak] - is a fully featured API to both enforce and manage your application's

null 103 Nov 24, 2022
Security engine for Java (authentication, authorization, multi frameworks): OAuth, CAS, SAML, OpenID Connect, LDAP, JWT...

pac4j is an easy and powerful security engine for Java to authenticate users, get their profiles and manage authorizations in order to secure web appl

PAC4J 2.2k Dec 30, 2022
A library for bypassing all of Java's security mechanisms, visibility checks, and encapsulation measures via the JNI API

Narcissus: thwart strong encapsulation in JDK 16+ Narcissus is a JNI native code library that provides a small subset of the Java reflection API, whil

ToolFactory 29 Nov 3, 2022
OAUTHScan is a Burp Suite Extension written in Java with the aim to provide some automatic security checks

OAUTHScan is a Burp Suite Extension written in Java with the aim to provide some automatic security checks, which could be useful during penetration testing on applications implementing OAUTHv2 and OpenID standards.

Maurizio S 163 Nov 29, 2022
Spring Security

Spring Security Spring Security provides security services for the Spring IO Platform. Spring Security 5.0 requires Spring 5.0 as a minimum and also r

Spring 7.4k Jan 5, 2023
Employee Management System using Spring Boot, Spring Security, Thymeleaf and MySQL database.

Employee Management System Employee Management System using Spring Boot, Spring Security, Thymeleaf and MySQL database. YouTube Video Series Employee

Ramesh Fadatare 62 Jan 1, 2023
Spring-security, swagger, db auth , RestAPI

Rest API Features Spring-security Swagger-UI DB based Authentication Role Based Access Spring AOP Steps To Use go to /login screen go to swagger-ui.ht

Aniruddha Stark 1 Mar 12, 2022
Messenger - A Java based project making use of Sockets for communication between the applications running on different JRE

Messenger - A Java based project making use of Sockets for communication between the applications running on different JRE. Multiple clients can connect at the same time and can send messages to each other, they also get the information of status of their friends connected to the server .

Sarthak Aggarwal 1 Jan 2, 2022
Open Source Identity and Access Management For Modern Applications and Services

Keycloak Keycloak is an Open Source Identity and Access Management solution for modern Applications and Services. This repository contains the source

Keycloak 14.6k Jan 5, 2023
JAP is an open source authentication middleware, it is highly decoupled from business code and has good modularity and flexiblity. Developers could integrate JAP into web applications effortlessly.

?? JAP 是什么? JAP 是一款开源的登录中间件,基于模块化设计,并且与业务高度解耦,使用起来非常灵活,开发者可以毫不费力地将 JAP 集

Fujie 140 Dec 1, 2022
Burp Extension for BFAC (Advanced Backup-File Artifacts Testing for Web-Applications)

BFAC - Burp Extension Burp Extension for BFAC (Advanced Backup-File Artifacts Testing for Web-Applications). What is BFAC - Burp Extension ? Backup fi

SEC-IT 18 Jul 16, 2022
Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.

Themis provides strong, usable cryptography for busy people General purpose cryptographic library for storage and messaging for iOS (Swift, Obj-C), An

Cossack Labs 1.6k Dec 29, 2022
Java JWT: JSON Web Token for Java and Android

Java JWT: JSON Web Token for Java and Android JJWT aims to be the easiest to use and understand library for creating and verifying JSON Web Tokens (JW

null 8.8k Dec 30, 2022
Java Project based on Java and Encryption using Cryptography algorithms

Symmetric-Encryption-Cryptography-in-Java Java Project based on Java and Encryption using Cryptography algorithms Project Aim Develop Java program to

Muhammad Asad 6 Feb 3, 2022
A mitigation for CVE-2021-44228 (log4shell) that works by patching the vulnerability at runtime. (Works with any vulnerable java software, tested with java 6 and newer)

Log4jPatcher A Java Agent based mitigation for Log4j2 JNDI exploits. This agent employs 2 patches: Disabling all Lookup conversions (on supported Log4

null 45 Dec 16, 2022
Java binding to the Networking and Cryptography (NaCl) library with the awesomeness of libsodium

kalium - Java binding to the Networking and Cryptography (NaCl) library A Java binding to Networking and Cryptography library by Daniel J. Bernstein.

Bruno Oliveira da Silva 206 Oct 5, 2022
A small and easy-to-use one-time password generator library for Java according to RFC 4226 (HOTP) and RFC 6238 (TOTP).

OTP-Java A small and easy-to-use one-time password generator for Java according to RFC 4226 (HOTP) and RFC 6238 (TOTP). Table of Contents Features Ins

Bastiaan Jansen 106 Dec 30, 2022
Bouncy Castle Java Distribution (Mirror)

The Bouncy Castle Crypto Package For Java The Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms, it was developed by t

Legion of the Bouncy Castle Inc 1.8k Dec 30, 2022
An authorization library that supports access control models like ACL, RBAC, ABAC in Java

jCasbin News: still worry about how to write the correct jCasbin policy? Casbin online editor is coming to help! Try it at: http://casbin.org/editor/

Casbin 2k Dec 30, 2022