{"id":25935893,"url":"https://github.com/jdesive/biothenticate-spring-boot","last_synced_at":"2025-08-30T05:02:31.958Z","repository":{"id":135936054,"uuid":"239375147","full_name":"jdesive/biothenticate-spring-boot","owner":"jdesive","description":null,"archived":false,"fork":false,"pushed_at":"2020-02-09T21:14:11.000Z","size":10,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-30T05:02:11.249Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jdesive.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-02-09T21:12:48.000Z","updated_at":"2020-02-09T21:16:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"60d8b5bc-781b-42b0-a393-69a519615f53","html_url":"https://github.com/jdesive/biothenticate-spring-boot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jdesive/biothenticate-spring-boot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdesive%2Fbiothenticate-spring-boot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdesive%2Fbiothenticate-spring-boot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdesive%2Fbiothenticate-spring-boot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdesive%2Fbiothenticate-spring-boot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jdesive","download_url":"https://codeload.github.com/jdesive/biothenticate-spring-boot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdesive%2Fbiothenticate-spring-boot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272805573,"owners_count":24995916,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-30T02:00:09.474Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-04T01:39:37.363Z","updated_at":"2025-08-30T05:02:31.951Z","avatar_url":"https://github.com/jdesive.png","language":"Java","readme":"# BioThenticate Spring Boot Plugin\nA Spring boot plugin that integrates with BioThenticate for MFA authentication. This plugin contains a custom \nimplementation of Spring boot's `AuthenticationManager` which will pull all users from BioThenticate and proceed \nto handle authentication for all users. When a user supplies their credentials, the plugin will first send them to \nBioThenticate for authentication then trigger a MFA request to BioThenticate for that user. Only after the user has passed both\nfactors will they be let in the application. \n\n## Quick Start\n\n### Dependencies\n#### Maven\n--- TODO add maven dep code ---\n\n#### Gradle\n--- TODO add gradle dep code ---\n\n### Main Class\n```java\n@EnableBioThenticate\n@SpringBootApplication\npublic class DemoApplication {\n\n\tpublic static void main(String[] args) {\n\t\tSpringApplication.run(DemoApplication.class, args);\n\t}\n\n}\n```\n\n### Web Security\n```java\n@EnableWebSecurity\npublic class WebSecurityConfig extends WebSecurityConfigurerAdapter {\n\n    @Autowired private IdentityService identityService;\n    @Autowired private BioThenticateClient bioThenticateClient;\n\n    @Override\n    protected AuthenticationManager authenticationManager() throws Exception {\n        return new BioThenticateAuthenticationManager(this.bioThenticateClient, this.identityService);\n    }\n\n    @Override\n    protected void configure(HttpSecurity http) throws Exception {\n        http.authorizeRequests()\n                .antMatchers(\"/admin\").hasAuthority(\"ADMIN\")\n                .antMatchers(\"/user\").hasAnyAuthority(\"ADMIN\", \"USER\")\n                .anyRequest().authenticated()\n                .and().httpBasic();\n    }\n\n}\n```\n\n### IdentityService\n```java\n@Service\npublic class StandardIdentityService implements IdentityService {\n\n    private AccountRepository accountRepository;\n\n    @Autowired\n    public StandardIdentityService(AccountRepository accountRepository) {\n        this.accountRepository = accountRepository;\n    }\n\n    @Override\n    public void save(Identity identity) {\n        Account account = new Account();\n        account.setId(identity.getId());\n        account.setEmail(identity.getEmail());\n        account.setFirstName(identity.getFirstName());\n        account.setLastName(identity.getLastName());\n        account.setAccountRole(identity.getAccountRole());\n        account.setInactive(identity.isInactive());\n        this.accountRepository.save(account);\n    }\n}\n```\n\n### Account \u0026 AccountRepository\n```java\npublic interface AccountRepository extends JpaRepository\u003cAccount, UUID\u003e { }\n```\n\n```java\n@Data\n@Entity\n@Table(name = \"accounts\")\npublic class Account implements Identity {\n\n    @Id\n    private UUID id;\n\n    private String email;\n\n    private String firstName;\n\n    private String lastName;\n\n    @Enumerated(value = EnumType.STRING)\n    private AccountRole accountRole;\n\n    private boolean inactive;\n\n}\n```\n\n## Build\nFor the most part you will not need to build this from the source as you can get it from gradle, maven or elsewhere. \nBut it is supported if needed.\n\n1. Clone the repository ---TODO insert url here---\n2. Navigate to the root directory and run `gradlew clean build`\n3. Once completed the .jar will be located at `build/libs/`\n\n## License\n--- TODO insert license details here ----\n\n## Authors\nThe [SOFTwarfare](https://softwarfare.com) Dev Team\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjdesive%2Fbiothenticate-spring-boot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjdesive%2Fbiothenticate-spring-boot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjdesive%2Fbiothenticate-spring-boot/lists"}