ziggle

Hail Hydra


  • Home

  • Archives

  • Search

nuget

Posted on 2019-05-27

本地仓库指定路径

%AppData%\NuGet\nuget.config

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
<!-- <add key="repo" value="http://192.168.2.85/repository/nuget.org-proxy/" /> -->
<!-- <add key="cps" value="D:\vcpkg\scripts\buildsystems" /> -->
<add key="Microsoft Visual Studio Offline Packages" value="C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\" />
</packageSources>
<disabledPackageSources>
<add key="repo" value="true" />
</disabledPackageSources>
<packageRestore>
<add key="enabled" value="True" />
<add key="automatic" value="True" />
</packageRestore>
<bindingRedirects>
<add key="skip" value="False" />
</bindingRedirects>
<packageManagement>
<add key="format" value="0" />
<add key="disabled" value="False" />
</packageManagement>

<config>
<add key="repositoryPath" value="E:\nugetpackage\.nuget\packages" />
<add key="globalPackagesFolder" value="E:\nugetpackage\.nuget\packages" />
</config>
</configuration>

添加

1
<add key="globalPackagesFolder" value="E:\nugetpackage\.nuget\packages" />

pgsql

Posted on 2019-05-23

sql2elasticsearch

Posted on 2019-04-26

导出数据elasticsearch

logstash config

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[root@localhost ~]# cat /srv/docker-elk/logstash/pipeline/sqlserver.conf 
input {
jdbc {
jdbc_driver_library => "/var/mssql-jdbc-7.2.2.jre8.jar"
jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
jdbc_connection_string => "jdbc:sqlserver://host:1433;databaseName=db"
jdbc_user => "a"
jdbc_password => "a"
schedule => "* * * * *"
jdbc_default_timezone => "Asia/Shanghai"
statement => "SELECT * FROM table WHERE id > :sql_last_value"
use_column_value => true
tracking_column => "id"
type => "task_table"
}
}

output {
if [type] == "task_table" {
elasticsearch {
index => "tasks"
hosts => ["elasticsearch:9200"]
}
}
}

其中 sql_last_value 计算查询条件的值

how-to-publish-jar-lib

Posted on 2019-01-21

使用gradle 发布 java 类库

  • 使用 maven 插件
1
apply plugin: 'maven'
  • 上传nexus地址

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    uploadArchives {
    repositories {
    mavenDeployer {
    repository(url: "http://{ip:port}/repository/maven-snapshots/") {
    authentication(userName: "user", password: "password")
    }
    pom.version = version
    pom.artifactId = project.name
    pom.groupId = 'com.ziggle.test'
    }
    }
    }
  • 运行 gradle uploadArchives

注意

jar包的命名影响上传的仓库

how-to-enable-spring-security

Posted on 2019-01-21

启用spring security

  • 需要一个AuthenticationProvider
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    @Service
    public class CustomerAuthenticationManager implements AuthenticationProvider {

    private final SysUserDetailService sysUserDetailService;

    public CustomerAuthenticationManager(SysUserDetailService sysUserDetailService) {
    this.sysUserDetailService = sysUserDetailService;
    }

    @Override
    public Authentication authenticate(Authentication authentication) throws AuthenticationException {
    // 获取认证的用户名 & 密码
    String name = authentication.getName();
    String password = authentication.getCredentials().toString();
    // 认证逻辑
    SysUserDetail userDetails = (SysUserDetail) sysUserDetailService.loadUserByUsername(name);
    String pwd = DigestUtils.md5DigestAsHex(password.getBytes());
    if (userDetails != null) {
    // 密码MD5 加密 or BCryptPasswordEncoder <--- use this one
    // if (encoder.matches(password, userDetails.getPassword())) {
    if (pwd.equalsIgnoreCase(userDetails.getPassword())) {
    // 这里设置权限和角色
    Collection<? extends GrantedAuthority> authorities = userDetails.getAuthorities();
    // 生成令牌 这里令牌里面存入了:name,password,authorities, 当然你也可以放其他内容
    Authentication auth = new UsernamePasswordAuthenticationToken(name, password, authorities);
    return auth;
    } else {
    throw new BadCredentialsException("密码错误");
    }
    } else {
    throw new UsernameNotFoundException("用户不存在");
    }
    }

    @Override
    public boolean supports(Class<?> auth) {
    return auth.equals(UsernamePasswordAuthenticationToken.class);
    }
    }

需要获取用户信息的service

  • 示例方法从数据库中获取用户信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
@Service
public class SysUserDetailService implements UserDetailsService {

private SysUserMapper sysUserMapper;
private SysUserRoleMapper sysUserRoleMapper;

public SysUserDetailService(SysUserMapper sysUserMapper,
SysUserRoleMapper sysUserRoleMapper) {
this.sysUserMapper = sysUserMapper;
this.sysUserRoleMapper = sysUserRoleMapper;
}

@Override
public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException {
SysUserDetail sysUserDetail = sysUserMapper.getSysUserDetail(s);
if (sysUserDetail == null) {
throw new AuthenticationCredentialsNotFoundException("账号不存在");
}
List<Role> userRole = sysUserRoleMapper.getUserRole(sysUserDetail.getId());
List<SimpleGrantedAuthority> authorities = getAuthorities(userRole);
sysUserDetail.setAuthorities(authorities);

return sysUserDetail;
}


private List<SimpleGrantedAuthority> getAuthorities(List<Role> roles) {
return roles
.stream()
.map(role -> new SimpleGrantedAuthority(role.getRole()))
.collect(Collectors.toList());
}
}

一些帮助类

  • SysUserDetail 这个类继承自 org.springframework.security.core.userdetails.UserDetails
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class SysUserDetail implements UserDetails {
private static final long serialVersionUID = -2184425668041155384L;
private Long id;
private String username;
@JsonIgnore
private String password;
private boolean disabled;
private String token;
private Collection<? extends GrantedAuthority> authorities;

public SysUserDetail() {
}

public SysUserDetail(Long id, String username, String password, boolean disabled, Collection<? extends GrantedAuthority> authorities) {
this.id = id;
this.username = username;
this.password = password;
this.disabled = disabled;
this.authorities = authorities;
}

...... ignore getter setter hashcode.
Read more »
1…111213…22
ziggle

ziggle

Hail Hydra !

110 posts
45 tags
RSS
GitHub
© 2021 ziggle
Powered by Hexo
|
Hail Hydra—