Open Source Address
Https://github.com/a466350665/smart
Https://git.oschina.net/a466350665/smart
QQ Exchange Group: 454343484 (group contains various tools and documents download) Brief Introduction
Smart positioning with the most popular SSM (SPRINGMVC + Spring + mybatis) technology, for you to build an easy to understand, high availability, high scalability of single sign-on rights Management application base, easy to achieve rapid development. Permission button level (can be controlled to the Controller method), modify real-time (MQ broadcast implementation), support distributed (Spring + Redis provides distributed session). Organizational Structure
Smart
├──SMART-MVC--Public Core module (SPRINGMVC + Spring + mybatis)
├──smart-sso--Single sign-on permission system
├─────smart-sso-client --Client Dependency package, providing login authentication, authorization management
├─────smart-sso-demo--Client
├─────smart-sso-server--Server ├──smart-static--
public static JS , CSS Files
1 2 3 4 5 6 7
Technology Selection
back endjdk:1.8 (Support 1.6+) database: Mysql Project build tool: Maven 3.3.3 API Documentation: SPRINGFOX-SWAGGER2 2.6.1 MVC framework: SPRINGMVC 4.2.1.RELEASE Core framework: Spring 4.2.1.RELEASE ORM Framework: MyBatis 3.3.0 Distributed Coordination services: Zookeeper 3.4.7 distributed RPC Service: Dubbo 2.5.3 (default Hessian 4.0.38) distributed caching service: Redis 2.8.12 Distributed messaging Services: ActiveMQ 5.13.3 NIO framework: Netty 4.0.23.Final JSON tool: Fastjson 1.2.29 timed task: Quartz 2.2.1 Database connection pool: Druid 1.0.15 Log Management: SLF4J 1.7.21, Logback 1.1.7 template engine: Freemarker 2.3.23 single sign-on: Minimalist implementation based on cookies
Front EndBase code Base: Jquery 2.1.1 Front-End Template: Ace 1.3.3 (Bootstrap) https://github.com/bopoda/ace
Browser compatibleInternet Explorer One Internet Explorer Internet Explorer 9 Internet Explorer 8 Google Chrome 14+ Firefox 5+ Safari 5 Op ERA 11 Mobile Browser compatible
Compare CAs + Shiro
Request ProtocolCAS: Default HTTPS, if you use HTTP, you need to modify the configuration parameters for CAs server decompression.
Smart: Default HTTP, optional for HTTPS, reduced configuration, lower threshold.
Configuration LevelCas: Duplicate servername parameters for Ticketvalidationfilter, Authenticationfilter, and Singlesignoutfilter specified in Web.xml, servername modification , we need to modify the three places separately.
Smart: Define the ServerName in the properties file and simplify the configuration with spring's tag injection. (after all, most Java projects today will use the Spring framework)
Coupling degreeShiro: We are more familiar with the way to control the permissions through annotation or configuration files, with relatively low coupling.
Smart: Manage permissions centrally in the permissions system, configure filter when needed, almost without coupling.
Permission Change Service restartShiro: Changes are required to restart the service through annotation or configuration file configuration permissions.
Smart: Permissions are modified via MQ broadcasts (optional) and the service does not need to be restarted.
Distributed DeploymentShiro: Usually everyone deploys redissession that relies on Shiro injection.
Smart: Through the more commonly used spring, overlay httpsession injection redissession.
Note: The scenery of CAs and Shiro feat do not need the author in this more hype, now just close the door to talk about the advantages of smart, of course, personal understanding and knowledge is limited, there is a description of the wrong place, but also welcome everyone to add group discussion. Friendly. Don't spray. Thank you. schema Diagram
Database Model
Effect Show Code Show
API Documentation
Dubbo Monitor Page
Single sign-on page
Rights Management Page
Mobile Browser Display