Диплом: Адаптивная динамическая информационная система управления сайтом

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
85
maven { url "https://repo.spring.io/milestone" }
}
ext['tomcat.version'] = '9.0.0.M3'
dependencies {
compile('org.springframework.boot:spring-boot-starter-freemarker')
compile('org.springframework.boot:spring-boot-starter-security')
compile('org.springframework.boot:spring-boot-starter-data-jpa')
compile('org.springframework.boot:spring-boot-starter-test')
compile('org.springframework.boot:spring-boot-starter-actuator')
compile('net.sourceforge.jtds:jtds:1.3.1')
compile(group: 'org.apache.commons', name: 'commons-lang3', version: '3.5')
compile('org.webjars:jquery:1.11.3')
compile('org.webjars:holderjs:2.5.2')
compile('org.webjars:bootstrap:3.3.6')
testCompile('junit:junit')}
86
Приложение 2
# Spring
spring.profiles.active=Development
# Logging
logging.level.root=INFO
logging.level.org.springframework=INFO
logging.level.org.hibernate=INFO
logging.level.org.springframework.web=INFO
logging.level.org.springframework.security=INFO
# Tomcat port
server.port=9090
# JPA & DATA
spring.jpa.hibernate.ddl-auto=create
# SQL Server settings
spring.datasource.driver-class-name=net.sourceforge.jtds.jdbc.Driver
spring.datasource.url=jdbc:jtds:sqlserver://192.168.10.110:1433/Platform
# Oracle settings
#spring.datasource.driver-class-oracle.jdbc.driver.OracleDriver
#spring.datasource.url=jdbc:oracle:platform:@192.168.10.110:1521:xe
# Default database username and password
spring.datasource.username=platform
spring.datasource.password=platform
spring.jpa.show-sql=false
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.SQLServer2008Dialect
87
spring.jmx.default-domain=com.platform
# Freemarker
#spring.freemarker.expose-request-attributes=true
#spring.freemarker.expose-spring-macro-helpers=true
#spring.freemarker.expose-session-attributes=true
# Actuator
management.security.enabled=false
management.health.db.enabled=true
# File upload
spring.http.multipart.max-file-size=1024KB
88
Приложение 3
INSERT INTO users (email, password_hash, role)
VALUES ('d.porollo@gmail.com',
'$2a$10$ebyC4Z5WtCXXc.HGDc1Yoe6CLFzcntFmfse6/pTj7CeDY5I05w16C', 'ADMIN');
INSERT INTO users (email, password_hash, role)
VALUES ('s.porollo@gmail.com',
'$2a$10$ebyC4Z5WtCXXc.HGDc1Yoe6CLFzcntFmfse6/pTj7CeDY5I05w16C', 'USER');
INSERT INTO article (title, content, author, date, user_id)
VALUES ('TestTitle', 'TestContent', 'TestAuhtor', '1982-08-30', 1);
INSERT INTO article (title, content, author, date, user_id)
VALUES ('TestTitle1', 'TestContent1', 'TestAuhtor1', '1982-08-31', 2);
INSERT INTO main_data (page_title_string, dev_name_string, log_in_string, sign_in_string,
remember_me_string,
e_mail_string, password_string, help_string, support_string, demo_string, contacts_string,
about_string, page_title_dashboard_string)
VALUES ('PlatformCMS', 'Dmitriy S. Porollo', 'Log In', 'Sign In', 'Remember me', 'Email address',
'Password', 'Help', 'Support', 'Demo',
'Contacts', 'About', 'PlatformCMS dashboard');
INSERT INTO comment (content, author, date, user_id)
VALUES ('TestComment', 'Dmitriy .S Porollo', '1982-08-31', 1);
89
Приложение 4
@Configuration
@EnableGlobalMethodSecurity(prePostEnabled = true)
@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private UserDetailsService userDetailsService;
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/",
"/css/**",
"/fonts/**",
"/img/**",
"/webjars/**",
"/js/**",
"/templates/user/**").permitAll()
.antMatchers("/admin/dashboard/**").hasAuthority("ADMIN")
.antMatchers("/user/dashboard/**").hasAuthority("USER")
.anyRequest().fullyAuthenticated()
.and()
.formLogin()
.defaultSuccessUrl("/admin/dashboard",true)
.loginPage("/login").permitAll()
.failureUrl("/error")
.usernameParameter("email")
.permitAll()
.and()
.logout()
90
.logoutUrl("/logout")
.deleteCookies("remember-me")
.logoutSuccessUrl("/")
.permitAll()
.and()
.rememberMe();
}
@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {
auth
.userDetailsService(userDetailsService)
.passwordEncoder(new BCryptPasswordEncoder());
}
}
91
Приложение 5
@Entity
@Table(name = "users")
public class User {
// Add Empty Constructor
public User() {}
// Column ID and strategy
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", nullable = false, updatable = false)
private Long id;
// Column email
@Column(name = "email", nullable = false, unique = true)
private String email;
// Column pass_hash
@Column(name = "password_hash", nullable = false)
private String passwordHash;
// Column role
@Column(name = "role", nullable = false)
@Enumerated(EnumType.STRING)
private Role role;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "user")
private Set<Article> Articles = new HashSet<Article>();
// Getters
92
public Long getId() {
return id;
}
public String getEmail() {
return email;
}
public String getPasswordHash() {
return passwordHash;
}
public Role getRole() {
return role;
}
// Setters
public void setEmail(String email) {
this.email = email;
}
public void setPasswordHash(String passwordHash) {
this.passwordHash = passwordHash;
}
public void setRole(Role role) {
this.role = role;
}
@Override
public String toString() {
return "User{" + "id=" + id + ", email='" + email.replaceFirst("@.*", "@***") + ",
passwordHash='" + passwordHash.substring(0, 10) + ", role=" + role + '}';
}
}
93
Приложение 6
package com.porollo.platform;
import com.platform.PlatformApplication;
import com.platform.repository.UserRepository;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import static org.assertj.core.api.Assertions.*;
@RunWith(SpringRunner.class)
@SpringBootTest(classes = PlatformApplication.class)
@DataJpaTest
@AutoConfigureTestDatabase(replace= AutoConfigureTestDatabase.Replace.NONE)
public class UserRepositoryIntegrationTest {
@Autowired
private UserRepository repository;
@Test
public void testAdminIsPresent() throws Exception {
94
assertThat(repository.findOneByEmail("d.porollo@gmail.com").isPresent())
.isEqualTo(true);
}
}

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)