LightAdmin - [PoC] Pluggable CRUD UI library for Java web applications

Overview

LightAdmin - [PoC] Pluggable CRUD UI library for Java web applications

The primary goal of this PoC project is to speed up application development by bringing pluggable fully operational data management back-end for JPA based applications and to relieve your codebase for more important stuff.

Features

  • DSL configurations: Allows developers to easily configure their administration user interface
  • Displaying persistent entities: Customizable Listing & Quick Views with paging & sorting capabilities
  • CRUD operations: Complete entities manipulation support (including their associations)
  • Automatic Validation: JSR-303 annotation-based validation rules support
  • Search: Allows users to search entities by text fields, dates, numeric values & associations
  • Filtering Scopes: Use scopes to filter data by predefined criteria
  • Pluggable Security: Authentication based on Spring Security
  • REST API: Enriching your application with REST API based on Spring Data REST
  • Easy integration: Servlet 2.5/3.0 web applications supported

Integration examples

Documentation & Support

Bug Reports

License

  • LightAdmin is released under version 2.0 of the Apache License.

Contribute

You're interested in contributing to LightAdmin? AWESOME. Here are the basic steps:

  • Fork LightAdmin from here: http://github.com/la-team/light-admin
  • Clone your fork
  • Hack away
  • If necessary, rebase your commits into logical chunks, without errors
  • Verify your code by running the test suite, and adding additional tests if able
  • Push the branch up to GitHub
  • Send a pull request to the la-team/light-admin project

We'll do our best to get your changes in!

Getting started

Declare maven dependency for using with Spring 4.0.X directly from Maven Central

<dependency>
  <groupId>org.lightadmingroupId>
  <artifactId>lightadminartifactId>
  <version>1.2.0.RC1version>
dependency> 

or

<dependency>
  <groupId>org.lightadmingroupId>
  <artifactId>lightadminartifactId>
  <version>1.2.0.BUILD-SNAPSHOTversion>
dependency> 

For snapshots and LightAdmin compatible with Spring 3.2.X, please declare LA Nexus repositories:

<repositories>
  <repository>
    <id>lightadmin-nexus-releasesid>
    <url>http://lightadmin.org/nexus/content/repositories/releasesurl>
    <releases>
      <enabled>trueenabled>
      <updatePolicy>alwaysupdatePolicy>
    releases>
  repository>
  <repository>
    <id>lightadmin-nexus-snapshotsid>
    <url>http://lightadmin.org/nexus/content/repositories/snapshotsurl>
    <snapshots>
      <enabled>trueenabled>
      <updatePolicy>alwaysupdatePolicy>
    snapshots>
  repository>  
repositories>

And dependency

<dependency>
  <groupId>org.lightadmingroupId>
  <artifactId>lightadminartifactId>
  <version>1.0.0.M2version>
dependency> 

Enable LightAdmin web-module in your web.xml if you have one:

<context-param>
  <param-name>light:administration:base-urlparam-name>
  <param-value>/adminparam-value>
context-param>

<context-param>
  <param-name>light:administration:securityparam-name>
  <param-value>trueparam-value>
context-param>

<context-param>
  <param-name>light:administration:base-packageparam-name>
  <param-value>[package with @Administration configurations, ex.: org.lightadmin.demo.config]param-value>
context-param>

Or enable LightAdmin web-module in your WebApplicationInitializer:

@Override
public void onStartup(ServletContext servletContext) throws ServletException {
  servletContext.setInitParameter(LIGHT_ADMINISTRATION_BASE_URL, "/admin");
  servletContext.setInitParameter(LIGHT_ADMINISTRATION_BACK_TO_SITE_URL, "http://lightadmin.org");
  servletContext.setInitParameter(LIGHT_ADMINISTRATION_BASE_PACKAGE, "org.lightadmin.administration");

  super.onStartup(servletContext);
}

Include your JPA persistence provider of choice (Hibernate, EclipseLink, OpenJpa) and setup basic Spring JPA configuration.

">
xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:jdbc="http://www.springframework.org/schema/jdbc"
       xmlns:jpa="http://www.springframework.org/schema/data/jpa"
       xsi:schemaLocation="http://www.springframework.org/schema/jdbc 
                           http://www.springframework.org/schema/jdbc/spring-jdbc.xsd
                           http://www.springframework.org/schema/beans
                           http://www.springframework.org/schema/beans/spring-beans.xsd
                           http://www.springframework.org/schema/data/jpa
                           http://www.springframework.org/schema/data/jpa/spring-jpa.xsd">
  
  <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="jpaVendorAdapter">
      <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
    property>
  bean>

  <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="entityManagerFactory" />
  bean>

beans>

Create an entity:

@Entity
public class User {

  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  private Integer id;
  private String firstname;
  private String lastname;
       
  // Getters and setters
}

Create an @Administration configuration in the package defined in web.xml previously:

public class UserAdministration extends AdministrationConfiguration<User> {

  public EntityMetadataConfigurationUnit configuration( EntityMetadataConfigurationUnitBuilder configurationBuilder ) {
    return configurationBuilder.nameField( "firstname" ).build();
  }

  public ScreenContextConfigurationUnit screenContext( ScreenContextConfigurationUnitBuilder screenContextBuilder ) {
    return screenContextBuilder
      .screenName( "Users Administration" )
      .menuName( "Users" )
      .build();
  }

  public FieldSetConfigurationUnit listView( final FieldSetConfigurationUnitBuilder fragmentBuilder ) {
    return fragmentBuilder
      .field( "firstname" ).caption( "First Name" )
      .field( "lastname" ).caption( "Last Name" )
      .build();
  }

Voila! You have a brand new LightAdmin back-end configured.

Check Out and Build from Source

  1. Clone the repository from GitHub:

     $ git clone git://github.com/la-team/light-admin.git
    
  2. Navigate into the cloned repository directory:

     $ cd light-admin
    
  3. The project uses Maven to build:

     $ mvn clean install
    

Running from the Command Line

By default, the app will run in 'embedded' mode which does not require any external setup. The Tomcat 7 Maven plugin is configured for you in the POM file.

  1. Navigate into demo application directory:

     $ cd lightadmin-sandbox
    
  2. Launch Tomcat from the command line:

     $ mvn tomcat7:run
    
  3. Access the deployed webapp at

     http://localhost:8080/lightadmin-sandbox
    

LightAdmin integration example

We prepared an example how easily you can integrate LightAdmin back-end to existing web application.

It's based on Spring Travel reference application.

  1. Clone the repository from GitHub:

     $ git clone git://github.com/la-team/lightadmin-spring-travel.git
    
  2. Navigate into the cloned repository directory:

     $ cd lightadmin-spring-travel
    
  3. The project uses Maven to build:

     $ mvn clean install
    
  4. Launch Tomcat from the command line:

     $ mvn tomcat7:run
    
  5. Access the deployed webapp at

     http://localhost:8080/booking-mvc
    

Screenshots

Login to LightAdmin:

Login view

Dashboard:

Dashboard view

List of persistent entities configured:

List view

Search entities by criteria:

List view & Filtering

Quick view for particular entity:

Quick view

Editing entity:

Form view

Show entity with all fields:

Show view

Comments
  • Cannot update object with OneToMany relationship

    Cannot update object with OneToMany relationship

    I have two objects, a Job and a JobQueue, which contains a job, like this:

    @JsonIgnore
    @ManyToOne(targetEntity = Job.class)
    @JoinColumn(name = "job_id", referencedColumnName = "jobId") //TODO check on the cascading
    private Job job;
    

    In our database, we have a foreign key constraint that requires JobQueue.job_id to be not null, and refer to a valid Job.

    In LightAdmin, I created a Job, then went to the JobQueue page and created a JobQueue, and chose the Job from the dropdown. When I clicked save, I got this error in the UI:

        "could not execute statement; SQL [n/a]; constraint [null]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement"
    

    And this error in the log file:

    Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'job_id' cannot be null
            at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0]
            at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0]
            at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0]
            at java.lang.reflect.Constructor.newInstance(Constructor.java:408) ~[na:1.8.0]
    

    When I added '@NotNull' to the definition of the Job in the JobQueue object, and now when I click 'save', I get a UI validation error, "Required". So LightAdmin knows the field is empty, which is strange, since I chose a Job from the dropdown.

    When I use the Chrome debugger I see this request payload being sent to the server:

    job: "http://localhost:9090/admin/rest/jobs/5"
    scheduledTime: "2014-09-23"
    sendTime: "2014-09-11"
    

    With this response:

    {
      "errors" : [ {
        "entity" : "JobQueue",
        "message" : "Required",
        "invalidValue" : "null",
        "property" : "job"
      } ]
    }
    

    I verified that http://localhost:9090/admin/rest/jobs/5 is a valid URL, and it returns the job I referenced.

    I checked out LightAdmin-Demo, and got it working, and it does not have this problem. I modified my code to be more like the demo, but the problem continues.

    bug in progress 
    opened by jbcpollak 14
  • Spring-Boot: NoSuchMethodError - RepositoryRestMvcConfiguration.entityLinks()

    Spring-Boot: NoSuchMethodError - RepositoryRestMvcConfiguration.entityLinks()

    I try to run https://github.com/la-team/lightadmin-springboot with spring-boot-starter-parent 1.2.1.RELEASE and lightadmin.version=1.1.0.BUILD-SNAPSHOT.

    Result: NoSuchMethodError - RepositoryRestMvcConfiguration.entityLinks() Which is strange because the lightadmin snapshot clearly has this method, and is also on classpath. What might be wrong here?

    [ERROR] org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/] - Servlet [lightadmin-dispatcher] in web application [] threw load() exception
    java.lang.NoSuchMethodError: org.springframework.data.rest.webmvc.config.RepositoryRestMvcConfiguration.entityLinks()Lorg/springframework/hateoas/EntityLinks;
        at org.lightadmin.core.config.context.LightAdminRepositoryRestMvcConfiguration.entityLinks(LightAdminRepositoryRestMvcConfiguration.java:68) ~[lightadmin-1.1.0.BUILD-SNAPSHOT.jar:1.1.0.BUILD-SNAPSHOT]
        at org.lightadmin.core.config.context.LightAdminRepositoryRestMvcConfiguration$$EnhancerBySpringCGLIB$$59177c69.CGLIB$entityLinks$3(<generated>) ~[spring-core-4.1.4.RELEASE.jar:1.1.0.BUILD-SNAPSHOT]
        at org.lightadmin.core.config.context.LightAdminRepositoryRestMvcConfiguration$$EnhancerBySpringCGLIB$$59177c69$$FastClassBySpringCGLIB$$1e1af318.invoke(<generated>) ~[spring-core-4.1.4.RELEASE.jar:1.1.0.BUILD-SNAPSHOT]
        at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) ~[spring-core-4.1.4.RELEASE.jar:4.1.4.RELEASE]
        at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:309) ~[spring-context-4.1.4.RELEASE.jar:4.1.4.RELEASE]
        at org.lightadmin.core.config.context.LightAdminRepositoryRestMvcConfiguration$$EnhancerBySpringCGLIB$$59177c69.entityLinks(<generated>) ~[spring-core-4.1.4.RELEASE.jar:1.1.0.BUILD-SNAPSHOT]
        at org.lightadmin.core.config.context.LightAdminRepositoryRestMvcConfiguration.entityLinks(LightAdminRepositoryRestMvcConfiguration.java:53) ~[lightadmin-1.1.0.BUILD-SNAPSHOT.jar:1.1.0.BUILD-SNAPSHOT]
        at org.lightadmin.core.config.context.LightAdminRepositoryRestMvcConfiguration$$EnhancerBySpringCGLIB$$59177c69.CGLIB$entityLinks$2(<generated>) ~[spring-core-4.1.4.RELEASE.jar:1.1.0.BUILD-SNAPSHOT]
        at org.lightadmin.core.config.context.LightAdminRepositoryRestMvcConfiguration$$EnhancerBySpringCGLIB$$59177c69$$FastClassBySpringCGLIB$$1e1af318.invoke(<generated>) ~[spring-core-4.1.4.RELEASE.jar:1.1.0.BUILD-SNAPSHOT]
        at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) ~[spring-core-4.1.4.RELEASE.jar:4.1.4.RELEASE]
        at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:309) ~[spring-context-4.1.4.RELEASE.jar:4.1.4.RELEASE]
        at org.lightadmin.core.config.context.LightAdminRepositoryRestMvcConfiguration$$EnhancerBySpringCGLIB$$59177c69.entityLinks(<generated>) ~[spring-core-4.1.4.RELEASE.jar:1.1.0.BUILD-SNAPSHOT]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_51]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_51]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_51]
        at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_51]
    
    opened by membersound 13
  • Image fields support

    Image fields support

    1. Into each file field it is possible to upload 1 file of supported extension (jpg,jpeg,png) with size up to 10 Mb
    2. It is possible to replace or delete uploaded file
    3. Validation of extension and file size is displayed upon selecting a file to upload.
    4. Image preview is displayed on List View, Quick View and Show View
    5. It is possible to view original file
    6. An entity can have more than 1 file field
    7. Performance does not degrade significantly when multiple entity items have images (server-side resizing)
    feature critical 
    opened by max-dev 11
  • Spring Data Evans support

    Spring Data Evans support

    Currently if using Spring Data Evans instead of Dijkstra I obtain this error during startup:

    java.lang.NoSuchMethodError: org.springframework.data.rest.webmvc.config.RepositoryRestMvcConfiguration.entityLinks()Lorg/springframework/hateoas/EntityLinks; at org.lightadmin.core.config.context.LightAdminRepositoryRestMvcConfiguration.entityLinks(LightAdminRepositoryRestMvcConfiguration.java:68) at org.lightadmin.core.config.context.LightAdminRepositoryRestMvcConfiguration$$EnhancerBySpringCGLIB$$954ecad9.CGLIB$entityLinks$2() at org.lightadmin.core.config.context.LightAdminRepositoryRestMvcConfiguration$$EnhancerBySpringCGLIB$$954ecad9$$FastClassBySpringCGLIB$$f1c17aff.invoke() at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:312) at org.lightadmin.core.config.context.LightAdminRepositoryRestMvcConfiguration$$EnhancerBySpringCGLIB$$954ecad9.entityLinks() at org.lightadmin.core.config.context.LightAdminRepositoryRestMvcConfiguration.entityLinks(LightAdminRepositoryRestMvcConfiguration.java:53) at org.lightadmin.core.config.context.LightAdminRepositoryRestMvcConfiguration$$EnhancerBySpringCGLIB$$954ecad9.CGLIB$entityLinks$1() at org.lightadmin.core.config.context.LightAdminRepositoryRestMvcConfiguration$$EnhancerBySpringCGLIB$$954ecad9$$FastClassBySpringCGLIB$$f1c17aff.invoke() at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:312) at org.lightadmin.core.config.context.LightAdminRepositoryRestMvcConfiguration$$EnhancerBySpringCGLIB$$954ecad9.entityLinks()

    Considering you upgraded to Spring 4.1 in POMs, could you support even latest release of Spring Data?

    enhancement 
    opened by pentavalle 8
  • IE10, IE11: data on all views is cached

    IE10, IE11: data on all views is cached

    Description: Data displayed on the ListView, ShowView, FormView, and QuickView on first visit, is not updated when visiting the view for the next time.

    Workaround: updated data is displayed after fully reloading the page For Quick View, reloading the page does not refresh the data. The data is refreshed after cleaning temporary internet files and data

    ListView

    1. Enter ListView: observe the data in item's fields: screenshot-168_before
    2. Edit an item screenshot-167
    3. Visit the ListView again:

    Expected result: item # 269 displays values entered in step 2 Actual result: item # 269 displays values displayed in step 1: screenshot-168_after

    ShowView

    1. Nagivate to Show View of an item: screenshot-169_before
    2. Edit the item > Save the changes screenshot-170 Expected result: ShowView displays values entered in step 2 Actual result: ShowView displays values displayed in step1 screenshot-169_after

    FormView

    1. Edit an item: screenshot-168-before
    2. Change field values screenshot-172
    3. Save
    4. Edit the item again:

    Expected result: Edit form displays values entered in step 2 Actual result: Edit form displays values displayed in step 1 screenshot-168-after

    Quick View

    1. While on the List View, expand the Quick View for an item: screenshot-174-before
    2. Edit the item > Save screenshot-176
    3. Go to the List View > Refresh the page > Expand the Quick View for the edited item:

    Expected result: values entered in step 2 are displayed Actual result: values displayed in step 1 are still displayed (even after reloading the page) screenshot-178

    bug major 
    opened by ikostenko 7
  • Unable to transfer files from lightadmin.org  repository

    Unable to transfer files from lightadmin.org repository

    While trying out lightadmin-spring-travel demo. On running mvn clean install following Bad Gateway problem is reported on several steps:

    Failure to transfer org.lightadmin:lightadmin:1.0.0-SNAPSHOT/maven-metadata.xml from http://lightadmin.org/nexus/content/repositories/releases was cached in the local repository, resolution will not be reattempted until the update interval of lightadmin-nexus-releases has elapsed or updates are forced. Original error: Could not transfer metadata org.lightadmin:lightadmin:1.0.0-SNAPSHOT/maven-metadata.xml from/to lightadmin-nexus-releases (http://lightadmin.org/nexus/content/repositories/releases): Failed to transfer file: http://lightadmin.org/nexus/content/repositories/releases/org/lightadmin/lightadmin/1.0.0-SNAPSHOT/maven-metadata.xml. Return code is: 502 , ReasonPhrase:Bad Gateway.

    opened by tilhari95 6
  • NoSuchMethodError ... LightAdminRepositoryRestMvcConfiguration.entityLinks

    NoSuchMethodError ... LightAdminRepositoryRestMvcConfiguration.entityLinks

    I am having a problem with the current version of lightadmin. You can reproduce it exactly with the lightadmin-springboot example:

    git clone https://github.com/la-team/lightadmin-springboot.git
    cd lightadmin-springboot
    mvn package
    java -jar target/lightadmin-boot.jar
    

    results in

    Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: Factory method [public org.lightadmin.core.web.json.DomainTypeToJsonMetadataConverter org.lightadmin.core.config.context.LightAdminRepositoryRestMvcConfiguration.domainTypeToJsonMetadataConverter()] threw exception; nested exception is java.lang.NoSuchMethodError: org.lightadmin.core.config.context.LightAdminRepositoryRestMvcConfiguration.entityLinks()Lorg/springframework/data/rest/webmvc/support/RepositoryEntityLinks;
        at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:188) ~[spring-beans-4.1.0.RELEASE.jar!/:4.1.0.RELEASE]
    ...
    
    enhancement 
    opened by dsteinkopf 6
  • EntityNameExtractor not working in 1.1.0-Snapshot

    EntityNameExtractor not working in 1.1.0-Snapshot

    Finaly i'm working on the integration of light-admin in a real word application, i was trying to use the great NameExtractor feature as explain here but without any result. I even set breakpoints inside the method Apply() but the execution never stopped there.

    Here's my code:

    
    @Administration(OrderBundle.class)
    public class OrderBundleAdministration {
    
        public static EntityMetadataConfigurationUnit configuration(
                EntityMetadataConfigurationUnitBuilder configurationBuilder) {
            return configurationBuilder.nameExtractor(userNameExtractor()).build();
        }
    
        private static EntityNameExtractor<Customer> userNameExtractor() {
            return new EntityNameExtractor<Customer>() {
                @Override
                public String apply(final Customer customer) {
    
                    return String.format("%s, %s", customer.getId(),
                            customer.getAddress());
                }
            };
        }
    
    }
    
    major investigation 
    opened by jimmyfm 6
  • Depolying LA on Heroku

    Depolying LA on Heroku

    I use Heroku as a fast and inexpensive solution for experiments and testing. For those experiment having something like LightAdmin would be really useful so i did some tinkering to get LA to work with the heroku deployment method.

    Everything works except the fact that the application root seems to no be configured so all the resources and links are broken. I looked trough the settings but seems like there is nothing about it.

    Here the code:

    https://github.com/jimmyfm/lightadmin-heroku

    And here the deployed app (might be asleep and take some time to load);

    http://lightadmin.herokuapp.com/admin/dashboard

    enhancement 
    opened by jimmyfm 6
  • EditView: numeric fields cannot be cleared

    EditView: numeric fields cannot be cleared

    Edit an entry with a numeric field holding a value > Clear the value > Save

    Expected result: 0 is displayed for the field

    Actual result: old value is displayed

    bug major 
    opened by ikostenko 6
  • n2many relations did not keep order; fixed using a parallel hidden select

    n2many relations did not keep order; fixed using a parallel hidden select

    n2many relations did not keep order; fixed using a parallel hidden select keeping track of order and reordering original select (now suffixed with -n2mall) on form load

    investigation 
    opened by anegrin 4
  • Bump commons-collections4 from 4.0 to 4.1 in /lightadmin-core

    Bump commons-collections4 from 4.0 to 4.1 in /lightadmin-core

    Bumps commons-collections4 from 4.0 to 4.1.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • [SECURITY] Use HTTPS to resolve dependencies in Maven Build

    [SECURITY] Use HTTPS to resolve dependencies in Maven Build

    mitm_build


    This is a security fix for a vulnerability in your Apache Maven pom.xml file(s).

    The build files indicate that this project is resolving dependencies over HTTP instead of HTTPS. This leaves your build vulnerable to allowing a Man in the Middle (MITM) attackers to execute arbitrary code on your or your computer or CI/CD system.

    This vulnerability has a CVSS v3.0 Base Score of 8.1/10.

    POC code has existed since 2014 to maliciously compromise a JAR file in-flight. MITM attacks against HTTP are increasingly common, for example Comcast is known to have done it to their own users.

    This contribution is a part of a submission to the GitHub Security Lab Bug Bounty program.

    Detecting this and Future Vulnerabilities

    This vulnerability was automatically detected by LGTM.com using this CodeQL Query.

    As of September 2019 LGTM.com and Semmle are officially a part of GitHub.

    You can automatically detect future vulnerabilities like this by enabling the free (for open-source) LGTM App.

    I'm not an employee of GitHub nor of Semmle, I'm simply a user of LGTM.com and an open-source security researcher.

    Source

    Yes, this contribution was automatically generated, however, the code to generate this PR was lovingly hand crafted to bring this security fix to your repository.

    The source code that generated and submitted this PR can be found here: JLLeitschuh/bulk-security-pr-generator

    Opting-Out

    If you'd like to opt-out of future automated security vulnerability fixes like this, please consider adding a file called .github/GH-ROBOTS.txt to your repository with the line:

    User-agent: JLLeitschuh/bulk-security-pr-generator
    Disallow: *
    

    This bot will respect the ROBOTS.txt format for future contributions.

    Alternatively, if this project is no longer actively maintained, consider archiving the repository.

    CLA Requirements

    This section is only relevant if your project requires contributors to sign a Contributor License Agreement (CLA) for external contributions.

    It is unlikely that I'll be able to directly sign CLAs. However, all contributed commits are already automatically signed-off.

    The meaning of a signoff depends on the project, but it typically certifies that committer has the rights to submit this work under the same license and agrees to a Developer Certificate of Origin (see https://developercertificate.org/ for more information).

    - Git Commit Signoff documentation

    If signing your organization's CLA is a strict-requirement for merging this contribution, please feel free to close this PR.

    Tracking

    All PR's generated as part of this fix are tracked here: https://github.com/JLLeitschuh/bulk-security-pr-generator/issues/2

    opened by JLLeitschuh 0
  • incorporated visualization code but have difficulty submitting it to be merged with the source code.

    incorporated visualization code but have difficulty submitting it to be merged with the source code.

    I am attaching zip file of the code that has visualization code in it. if you know how to submit the code, either let me know the process or go ahead and merge the code.

    light-admin-master.zip

    opened by msalehisedeh 1
  • Failed to execute goal on project lightadmin-sandbox:

    Failed to execute goal on project lightadmin-sandbox:

    Failed to execute goal on project lightadmin-sandbox: Could not resolve dependencies for project org.lightadmin:lightadmin-sandbox:war:1.2.0.BUILD-SNAPSHOT: Failed to collect dependencies at org.lightadmin:light-logging-configurer:jar:1.0.0.BUILD-SNAPSHOT: Failed to read artifact descriptor for org.lightadmin:light-logging-configurer:jar:1.0.0.BUILD-SNAPSHOT: Could not transfer artifact org.lightadmin:light-logging-configurer:pom:1.0.0.BUILD-SNAPSHOT from/to lightadmin-nexus-snapshots (http://lightadmin.org/nexus/content/repositories/snapshots): Failed to transfer file: http://lightadmin.org/nexus/content/repositories/snapshots/org/lightadmin/light-logging-configurer/1.0.0.BUILD-SNAPSHOT/light-logging-configurer-1.0.0.BUILD-SNAPSHOT.pom. Return code is: 503 , ReasonPhrase:Service Temporarily Unavailable.

    opened by ammad27k 0
  • Multiple roles/modules

    Multiple roles/modules

    Hi All

    Can we have multiple roles(baseUrl and basePackage) in lightadmin?

    Example: /employee should have access to employee modules and /admin should have access to admin modules

    opened by MC-11 0
  • LightAdmin Nexus Repo is Down!

    LightAdmin Nexus Repo is Down!

    Hi, I was trying to push (deploy) the latest BUILD-SNAPSHOT to the LA Nexus Repo. But got the following error: Could not transfer metadata org.lightadmin:lightadmin:1.2.0.BUILD-SNAPSHOT/maven-metadata.xml from/to lightadmin-nexus (http://lightadmin.org/nexus/content/repositories/snapshots): Failed to transfer http://lightadmin.org/nexus/content/repositories/snapshots/org/lightadmin/lightadmin/1.2.0.BUILD-SNAPSHOT/maven-metadata.xml. Error code 500, Internal Server Error Seems like the Nexus repository is down. Can anyone please make it up again? Thanks!!

    opened by gazirahman 0
Releases(1.2.0.RC1)
Owner
la-team
Smart software development team
la-team
Spring Boot JdbcTemplate example with SQL Server: CRUD Rest API using Spring Data JDBC, Spring Web MVC

Spring Boot JdbcTemplate example with SQL Server: Build CRUD Rest API Build a Spring Boot CRUD Rest API example that uses Spring Data Jdbc to make CRU

null 7 Dec 20, 2022
POC showing how to divide endpoint(s) among different Open-API screens

Multiple Open-API groups: Spring boot POC showing how to divide endpoint(s) among different Open-API screens Demo Link (Select definition from top rig

null 6 Dec 15, 2022
Log4J CVE-2021-44228 Minecraft PoC

CVE-2021-44228 in Minecraft Java 16 Paper server build #397 Minecraft 1.17.1 Exploitation In Java 16 only deserialization attacks work by default usin

myxl 5 Feb 15, 2022
spring-cloud-function SpEL RCE, Vultarget & Poc

spring-cloud-function SpEL RCE Vultarget You can build it for youself. here is the source of the Vuln App Or you can use the release which built by cc

cckuailong 133 Nov 30, 2022
PoC for CVE-2021-31805 (Apache Struts2)

CVE-2021-31805 PoC for CVE-2021-31805 (Apache Struts2) CVE-2021-31805の解説記事で使用したアプリケーションです。 セットアップ $ docker-compose build $ docker-compose up -d 動作確認

null 4 May 21, 2022
Slueth(Zipkin) 를 통한 SQS Message Tracing POC(Proof of concept) 입니다.

Sleuth AWS SQS POC 해당 프로젝트는 Slueth(Zipkin) 를 통한 메시지 추적 POC(Proof of concept) 입니다. Rest API 를 통해 POST 요청을 받으면, 메시지를 발행/소비 합니다. 이 과정에서 유지되는 TraceId 를 확인

Hyunjin Jeong 10 Nov 29, 2022
Apache/Alibaba Dubbo <= 2.7.3 PoC Code for CVE-2021-25641 RCE via Deserialization of Untrusted Data; Affects Versions <= 2.7.6 With Different Gadgets

The 0xDABB of Doom - CVE-2021-25641-Proof-of-Concept Apache/Alibaba Dubbo <= 2.7.3 PoC Code for CVE-2021-25641 RCE via Deserialization of Untrusted Da

Dor Tumarkin 51 Apr 24, 2022
log4j2 rce、poc

Apache Log4j 2 Apache log4j2 开源日志组件远程代码执行 攻击者通过构造恶意请求,触发服务器log4j 2 日志组件的远程代码执行漏洞。漏洞无需特殊配置,经验证,最新版的补丁可以防护此问题 官方最新补丁: log4j-2.15.0-rc2 紧急处置方案 2.10 or 以上

null 86 Dec 4, 2022
CRUD operation using java springboot microservice hosted in kubernetes env, data stored in mongodb

springboot-mongodb-k8s-parth Brief Introduction Hello Friends, I have created REST API using Springboot and Spring cloud application which performs CR

Parth Shah 1 Nov 11, 2021
Aplicación Java tipo Ant con conexión a BD SQLite y CRUD.

CRUD-Java-Netbeans-TDEA Aplicación Java tipo Ant con conexión a BD SQLite y CRUD. Este proyecto es para el curso Desarrollo de Software 2 en el Tecnol

Daniel Felipe A.M. 11 Dec 16, 2022
Springboot CRUD api using containerized mongoDB. ☕🍃📦

Javongo ☕ ?? Springboot CRUD api using containerized mongoDB. Feel free to use it as an example for your projects. Running Make sure ports 27017 & 808

Antonio Cituk 8 Mar 19, 2022
Uma API REST com funcionalidades de CRUD que simula um sistema de leilão 💰.

Leilão API REST Essa aplicação foi feita para ajudar aqueles que ainda estão com alguma dúvida, sobre o funcionamento de um API REST em Spring. Já que

Fábio Henrique 4 Feb 23, 2022
Automatic creation of simple CRUD API of Spring boot and JPA project.

fast-crud Automatic creation of simple CRUD API of Spring boot and JPA project.

JinHwanKim 18 Oct 23, 2022
Basic crud operations with json data, main focus is with tests

Spring Crud operations Basic crud operations with json data, main focus is with tests. For future reference Road Map Basic Crud on controllers (done)

Jarno Saastamoinen 1 Feb 1, 2022
SpringBoot CRUD Employee Management System

Employee-Management-Springboot SpringBoot CRUD Employee Management System Tech it uses Java SpringBoot Hibernate MySQL To Run Download the zip file an

Abhinav Gupta 1 Jan 31, 2022
CRUD about create, update and delete items like fish and fishbowl

CreacionPecesYPeceras Este repositorio contiene el código fuente y la base de datos (fichero .sql) que conforman una aplicación CRUD (Create, Read, Up

Ale Cueto Jiménez 9 Mar 2, 2022
Spring JPA Many To Many example with Hibernate and Spring Boot CRUD Rest API - ManyToMany annotation

Spring JPA Many To Many example with Hibernate and Spring Boot CRUD Rest API - ManyToMany annotation

null 17 Dec 28, 2022
Aplicación CRUD del Diario del Cazador del videojuego Hollow Knight.

Aplicación CRUD del Diario del Cazador del videojuego Hollow Knight. Es una base de datos que alberga información de todos los enemigos de ese videojuego. En ella los usuarios podrán insertar, borrar o editar sus datos

Alberto Moreno González 5 Mar 2, 2022
Crud sobre el mundo del cine, y listado de películas que un usuario puede tener en su casa.

FilmHome ?? ??️ Crud sobre el mundo del cine, y listado para gestionar las películas que un usuario puede tener como colección en su casa. ??️ VIDEO Y

Adrian Egea Hermoso 5 May 16, 2022