안녕하세요 상훈입니다.

 

✔️ What To Do?

자바 (Java) 에서 비밀번호를 검증하는 공통코드를 작성하려고 합니다.

비밀번호 정책에 따른 비밀번호 검증
[ 영문대문자, 영문소문자, 숫자, 특수문자 ]  4종류 조합으로 생성하도록 한다.
   ㄴ 2종류 조합시 10자리 이상, 3종류 조합시 8자리 이상으로 한다.
//패턴
private static final String PATTERN_SPECIAL_CHAR = "[!@#$%^&*()+=-]";
private static final String[] PSWD_COMBI_PATTERNS = {"[0-9]", "[a-z]", "[A-Z]", PATTERN_SPECIAL_CHAR};
//길이
private static final int PWSD_COMBI_2_MIN_LENGTH = 10;
private static final int PWSD_COMBI_3_MIN_LENGTH = 8;
    
/**
 * @param pswd 입력한 비밀번호
 * @return 검증 여부 (성공: true, 실패: false)
 */
private static boolean isValidByPasswordPolicy(@NonNull final String pswd) {
    int matchCnt = 0;
    for (String iter : PSWD_COMBI_PATTERNS) {
        Pattern pattern = Pattern.compile(iter);
        Matcher matcher = pattern.matcher(pswd);
        if (matcher.find()) {
            matchCnt++;
        }
    }

    if (matchCnt == 2 && PWSD_COMBI_2_MIN_LENGTH <= StringUtils.length(pswd)) {
        return true;
    } else if (matchCnt >= 3 && PWSD_COMBI_3_MIN_LENGTH <= StringUtils.length(pswd)) {
        return true;
    }
    return false;
}

 

이상입니다.

 

여유롭게 커피 한 잔 사주시면 감사합니다~

반응형
gradlew Permission Denied

에러 발생

내용인즉슨 권한이 없어 거부됨

chmod 명령어로 권한 할당

chmod +x gradlew

반응형

안녕하세요 상훈입니다.

 

✔ 에러 환경 / 내용

FrontEnd(Javascript, Vue.js) → BackEnd(Java)
비동기 통신 axios, post 방식으로 전송하였는데, 아래와 같은 에러가 발생하였습니다.

.w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported]

에러문구

경고이긴하지만, 데이터가 안들어왔으니 결함이 되겠지요?

 

✔ 이유

- application/x-www-form-urlencoded
- charset=UTF-8

컨트롤러(Controller) - 어노테이션 @RequestBody 에서 인식하지 못하기 때문입니다.

이전
parameter 부분의 @RequestBody를 삭제

 

✔ 결과

그래서 간단하게 RequestBody 어노테이션을 삭제해주었더니 정상적으로 데이터가 받아졌습니다.

결과 데이터

 

이상입니다.

감사합니다.

 

 

Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported for @RequestBody MultiValueMap

Based on the answer for problem with x-www-form-urlencoded with Spring @Controller I have written the below @Controller method @RequestMapping(value = "/{email}/authenticate", method = RequestMe...

stackoverflow.com

 

반응형

안녕하세요 상훈입니다.

Vue3 + Spring 를 비동기 통신 axios 로 서버의 데이터 불러오기를 하려고합니다. 

2가지 이슈가 있었습니다.

1) Spring에서 사용하는 Post 방식.
2) Axios 통신에서 생기는 자체적인 문제

해당하는 부분에 적용해서 봐주시면 될 것 같습니다.

 

😱 1번째 이슈 😱 

- GET방식만 사용하다 보니, POST 방식을 똑같이 적용하는데에 오류가 발생하였다.

그래서 AXIOS를 사용하여 데이터를 백에서 받을 때 자체가 정상적으로 이루어지지 않았다.

@RestController
@RequestMapping("/rp")
public class RPController {
	@Autowired
	RPService rpService;
    
	@ResponseBody
	@PostMapping("/getItems")
	public List<SearchListOut> searchLists (@RequestBody SearchListIn searchListIn) {
		return rpService.searchLists(searchListIn.getRSeq());
	}
}

 - RestController 를 설정, ReqeustMapping을 통하여 "/rp"에 대한 모든 경로를 받을 것을 선언.

- Service를 연결.

- ResponseBody, PostMapping 을 통하여 post 통신방식으로 데이터를 받을 것을 선언.

- @RequestBody SearchListIn searchListIn 
   ㄴ searchListIn.java  DTO 에서 선언한 내용을 값으로 받겠다고 선언

- searchListIn.getRSeq() 를 통해 해당 값을 전달.

 

✔ SearchListIn  DTO

// SearchListIn DTO
import lombok.Data;

@Data
public class SearchListIn {
	private int rSeq;
}

이렇게 처리하여서 값을 받아왔습니다!

Spring terminal 에 sysout 된것을 확인.

 


😱 2번째 이슈 😱 

알고보니 axios에서 2번째 파라미터로 값을 보내게 되는데, 이 부분에서 제대로 적용이 안된다는 이슈가 있었습니다.

그래서 3번째 파라미터로 전달하도록 처리했습니다.

function _fetchRP (url, payload) {
	return new Promise ((resolve, reject) => {
		axios.post(url, null, {params: {...payload} })
		...
	}
}

axios parameter 전달

3번째 인자는 원래 config 옵션인데, 이상하게 그렇게 오류가 뜬다고 알려져 있더라구요.

후일 2번째 파라미터로 정상 동작하게 된다면 현재 옵션이 오류가 발생할 것으로 보입니다.

유념해주세요!

반응형

안녕하세요. 상훈입니다.

 

✔ 발생 환경

Java - springfox 를 의존성 주입하여 프로젝트 git에 push 한 것을 pull 받아 바로 구동하려고하는데 

환경 : VSCode.

빨간줄 ㅠㅠ

빨간줄이 떠버렸습니다.

The import springfox cannot be resolvedJava(268435846)

이런 안내문구와 함께요.

 

✔ 오류 발생 원인 

😢 이 에러가 발생한 건 Build 때문입니다.

 

✔ 해결 방법

Build를 진행하도록 하겠습니다.

Reload Project

build.gradle  > 우클릭  > Reload Projects 를 해주세요.

 

build 시작

이렇게 새로운 빌드가 되는것을 보실 수 있습니다.

build가 완료되면 에러표시가 사라진것을 보실 수 있습니다.

만약 그래도 안사라지시면, vscode를 한 번 종료 후, 재구동 시켜서 build를 진행해주세요!

 

이상입니다.

 

The import org.springframework cannot be resolved - Java(268435846)

I'm trying to use the Spring Framework in my project, but I have a problem with the import. I'm working with Gradle for builds, React JS for the front end and Java for the back end. The weird th...

stackoverflow.com

 

 

도움이 되셨다면 광고 한번 클릭해주세요. 블로그 운영에 큰 힘이 됩니다. 감사합니다.

반응형

안녕하세요 상훈입니다.

 

MongoDB를 사용하여 node.js 와 연결하려고합니다.

에러 발생

MongoParseError: option usefindandmodify is not supported at parseOptions ...

 

mongo.connect( )option에서 에러가 발생하였습니다.

해당 에러는 mongoose의 버전의 상승으로 인해 더이상 필요없어졌기 때문에 에러가 발생하는 것입니다.

옵션을 제거해주세요!

mongoose
  .connect(MONGO_URI)
  .then(() => {
    console.log("Connected to MongoDB");
  })
  .catch((e) => {
    console.log(e);
  });

이렇게 connect 함수 내부에 파라미터로 uri 주소 말고는 옵션을 주지 않고 코드를 작성합니다.

이상입니다.

 

도움이 되셨다면 광고 한번 클릭해주세요. 블로그 운영에 큰 힘이 됩니다. 감사합니다.

 

 

Error: `useFindAndModify` is an invalid option

I am new to MERN stack and I am following MERN stack tutorial on YouTube. I got an error on Mongoose. Error: `useFindAndModify` is an invalid option I couldn't find any solution to that. import

stackoverflow.com

 

반응형

사용환경: WINDOW, LINUX, Python 3.10.2, PHP 8.0.3 (이전 버전도 가능)

 

지난 포스팅

 

[ Python ] PHP에서 Python 파일 호출하기

사용환경: WINDOW, LINUX, Python 3.10.2, PHP 8.0.3 (이전 버전도 가능) PHP에서 Python의 파일을 호출하는 방법 PHP에서 shell_exec 를 통하여 Python 파일을 호출할 수 있다. // 사용할 php파일 $output = shel..

code-hoon.tistory.com

 

PHP 에서 Python 에 파라미터를 전달하는 방법을 포스팅하겠습니다.

<?php
$data_value = '첫번째';
$data_value2 = '두번째';
$output = shell_exec("python-text.py".' '.$data_value.' '.$data_value2);
echo $output;

shell_exec 를 사용해주면 되는데, 주의할 점이 있습니다.

바로 띄어쓰기 입니다.

1. 띄어쓰기를 통해 매개변수를 구분한다.
2. 만약 데이터에 '안녕하세요  훈입니다.' 와 같이 띄어쓰기가 있는 데이터는 별도의 데이터로 출력됩니다.

 

# python

import sys
import io	#한글처리

sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding='utf-8')		#한글처리
sys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding='utf-8')		#한글처리

for arg in sys.argv:
    print(arg)

sys.exit()

반복문을 통하여 전달된 인자 arg 를 출력해주면 됩니다. 

arg 의 결과물은 배열(Array)인데, 첫번째 인자출력물로 현재 경로를 출력합니다.  사용에 주의 바랍니다.
만약 값이 전달되지 않았을 때는, 경로만 출력이 되기 때문에 값이 잘 전달되었는지 확인이 가능합니다.

 

결과

 

 

띄어쓰기가 있는 데이터를 전달해주었을때

개행되어서 출력되는 것을 확인하실 수 있습니다.

 

 

반응형

'BackEnd > Python' 카테고리의 다른 글

[ Python ] PHP에서 Python 파일 호출하기  (0) 2022.02.14

사용환경: WINDOW, LINUX, Python 3.10.2, PHP 8.0.3 (이전 버전도 가능)

 

PHP에서 Python의 파일을 호출하는 방법

PHP에서 shell_exec 를 통하여 Python 파일을 호출할 수 있다.

// 사용할 php파일

$output = shell_exec("python-text.py");	   // python-text.py : 파이썬 파일 이름 
echo $output;

최대한 내용을 짧게 하고 싶어서 명령어 없이 작성하였다.

 

다른 방법도 있다,

// 사용할 php 파일

$output = exec( "python python-file-name.py" );
echo $output;

파이썬 파일 이름 앞에 py, python, python3 이라든지 파이썬 명령어를 사용해도 무방하다. 

// python.py

helloThere = 'hello'
print(helloThere)

결과 출력 - hello

 

다음 포스팅은 php에서 매개변수(파라미터)전달하는 방법을 포스팅하겠습니다.

 

 

 

 

PHP: exec - Manual

If you're trying to use exec in a script that uses signal SIGCHLD, (i.e. pcntl_signal(SIGCHLD,'sigHandler');) it will return -1 as the exit code of the command (although output is correct!). To resolve this remove the signal handler and add it again after

www.php.net

 

 

PHP에서 Python 파일 실행하기

php에서 외부 프로그램을 실행시킬 일이 없을 것 같았는데 그 일이 생겼다. 그래서 구글링한 결과 간단하게 사용할 수 있는 것을 발견하고 소스를 추가해봤다. EXEC Function php manual은 다음을 참고

jeffrey-oh.tistory.com

 

반응형

+ Recent posts